Hoje de manhã, enquanto escrevia alguns html e haml, ocorreu-me que a maneira como os divs são usados é ridícula. Por que divs não está implícito? Imagine se isso:
<div class="hero-img">
<img src="http://whatever.com/this.jpg">
</div>
foi isto:
<hero-img>
<img src="http://whatever.com/this.jpg">
</hero-img>
Se a parte "div class" do elemento fosse assumida, o HTML seria mais semântico e infinitamente mais legível com as tags de fechamento correspondentes!
Isso é semelhante ao HAML, onde temos:
.content Hello, World!
O que se torna:
<div class='content'>Hello, World!</div>
Parece-me que a única coisa que teria que acontecer para que isso funcionasse nos navegadores é que os navegadores poderiam começar a interpretar todos os elementos sem uma definição de elemento html existente implicando <div class="<element name>">
.
Isso pode ser completamente compatível com versões anteriores; para seletores CSS e jQuery etc., "div.hero-img" ainda pode funcionar e ser a sintaxe necessária para selecionar os elementos.
Conheço a nova especificação de componentes da Web, mas isso é significativamente mais complicado do que o sugerido aqui. Você pode imaginar como seria agradável olhar para a fonte de um site e ver um html assim?
Então, por que precisamos usar divs?
Se você olhar para a lista de elementos html5 da Mozilla , cada elemento tem um significado semântico, e então chegamos a <div>
ele e diz:
"Representa um contêiner genérico sem significado especial."
..e então eles listam os elementos arbitrários que estão adicionando ao html5 <details>
.
Obviamente, se esse conceito de divs implícitas fosse adicionado à especificação html, levaria dez anos para se tornar padrão, o que representa um milhão de anos no tempo da web.
Então, acho que deve haver uma boa razão para isso ainda não ter acontecido. Por favor, explique para mim!