Questa mattina, mentre stavo scrivendo alcuni html e haml, mi è venuto in mente che il modo in cui vengono utilizzati i div è ridicolo. Perché le div non sono implicite? Immagina se questo:
<div class="hero-img">
<img src="http://whatever.com/this.jpg"></div>
eraquesto:
<hero-img><imgsrc="http://whatever.com/this.jpg">
</hero-img>
Se si presupponesse la parte "div class" dell'elemento, l'HTML sarebbe più semantico e infinitamente più leggibile con i tag di chiusura corrispondenti!
Questo è simile a HAML, dove abbiamo:
.content Hello, World!
Che diventa:
<div class='content'>Hello, World!</div>
Mi sembra che l'unica cosa che dovrebbe succedere perché funzioni nei browser è che i browser potrebbero iniziare a interpretare ogni elemento senza una definizione di elemento html esistente come implicante <div class="<element name>">
.
Questo potrebbe essere completamente compatibile con le versioni precedenti; per i selettori CSS e jQuery ecc., "div.hero-img" potrebbe ancora funzionare ed essere la sintassi richiesta per selezionare gli elementi.
Conosco le nuove specifiche dei componenti Web, ma è molto più complicato di quanto suggerito qui. Riesci a immaginare quanto sarebbe bello guardare la fonte di un sito web e vedere l'html così ?!
Quindi, perché dobbiamo usare le div?
Se guardi elenco di elementi html5 di Mozilla , ogni elemento ha un significato semantico, e poi arriviamo a <div>
e dice:
"Rappresenta un contenitore generico senza significato speciale."
.. e poi elencano gli elementi arbitrari che stanno aggiungendo a html5 come <details>
.
Naturalmente, se questo concetto di divs implicito fosse stato aggiunto alle specifiche HTML, ci vorrebbero dieci anni per diventare standard, che è un milione di anni nel tempo del web.
Quindi immagino ci debba essere una buona ragione per cui questo non sia ancora successo. Per favore, spiegamelo!