Questa mattina, mentre stavo scrivendo un po 'di html e di haml, mi è venuto in mente che il modo in cui vengono utilizzati i div è ridicolo. Perché i div non sono impliciti? Immagina se questo:
<div class="hero-img">
<img src="http://whatever.com/this.jpg">
</div>
era questo:
<hero-img>
<img src="http://whatever.com/this.jpg">
</hero-img>
Se la parte della "classe div" dell'elemento fosse assunta, 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 accadere perché questo funzioni nei browser è che i browser potrebbero iniziare a interpretare ogni elemento senza una definizione di elemento HTML esistente come implicita <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 è significativamente più complicato di quanto suggerito qui. Riesci a immaginare quanto sarebbe piacevole guardare la fonte di un sito web e vedere HTML come quello ?!
Quindi perché dobbiamo usare i div?
Se guardi l'elenco degli elementi html5 di Mozilla , ogni elemento ha un significato semantico, quindi 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>
.
Ovviamente, se questo concetto di div impliciti fosse aggiunto alle specifiche html, occorrerebbero dieci anni per diventare standard, ovvero un milione di anni nel tempo web.
Quindi immagino ci debba essere una buona ragione per cui questo non è ancora successo. Per favore, spiegamelo!