Esta mañana, mientras escribía algunos html y haml, se me ocurrió que la forma en que se usan los divs es ridícula. ¿Por qué no están implicados los divs? Imagina si esto:
<div class="hero-img">
<img src="http://whatever.com/this.jpg">
</div>
era esto:
<hero-img>
<img src="http://whatever.com/this.jpg">
</hero-img>
Si se supusiera la parte de "clase div" del elemento, el HTML sería más semántico e infinitamente más legible con las etiquetas de cierre coincidentes.
Esto es similar a HAML, donde tenemos:
.content Hello, World!
Que se convierte en:
<div class='content'>Hello, World!</div>
Me parece que lo único que tendría que suceder para que esto funcione en los navegadores es que los navegadores podrían comenzar a interpretar cada elemento sin una definición de elemento html existente que implique <div class="<element name>">
.
Esto podría ser completamente compatible con versiones anteriores; para los selectores CSS y jQuery, etc., "div.hero-img" aún podría funcionar, y sería la sintaxis necesaria para seleccionar los elementos.
Sé sobre la nueva especificación de componentes web, pero eso es significativamente más complicado de lo que se sugiere aquí. ¿Te imaginas lo agradable que sería mirar la fuente de un sitio web y ver html que se parece a eso?
Entonces, ¿por qué tenemos que usar divs?
Si nos fijamos en la lista de elementos html5 de Mozilla , cada elemento tiene un significado semántico, y luego llegamos <div>
y dice:
"Representa un contenedor genérico sin significado especial".
..y luego enumeran los elementos arbitrarios que están agregando a html5 como <details>
.
Por supuesto, si este concepto de divs implícitos se agregara a la especificación html, tomaría diez años convertirse en estándar, que es un millón de años en el tiempo web.
Así que me imagino que debe haber una buena razón para que esto no haya sucedido todavía. ¡Por favor, explícamelo!