La struttura di una pagina web

HTML 5 introduce una novità particolare alle versioni precedenti. Gia dalle versioni XHTML, gli sviluppatori si sono abituati a creare strutture delle pagine attraverso un uso massiccio dei tag <div> che hanno preso il posto di tabelle e frame, con benefici ineguagliabili per la manutenzione e leggibilità del codice.

Il sito risulta così diviso in tante aree ed è facile trovarla in mezzo al codice e leggerla o modificarla. Con HTML5 vengono introdotti dei tag detti “semantici”, ovvero che col loro nome descrivono direttamente quello che fanno, ai gia esistenti come form e table. Non servono piuttosto a fare una vera e propria grafica o effetto visibile, ma quanto a creare una suddivisione di porzione note del sito. Nella figura sotto riportata una idea di questi tag e di che aree della nostra pagina dovrebbero e potrebbero descrivere. Credo che il lettore possa riscontrare con facilità il design medio dei siti web somiglianti alla figura.

Ovviamente possiamo creare dei contenitori DIV generici ed aggiungere un id o una classe a ciascuno di questi elementi. Il loro uso, ribadiamo, non è obbligatorio e del resto non tutti i siti hanno questa impostazione gerarchica. Possiamo  ad esempio avere:

<div id=”nav”>…</div>  che diventa col tag semantico <nav> … </nav>

oppure

<div id=”footer”></div> che diventa <footer> …  </footer>

I div manterrebbero il senso del medesimo tag semantico senza differenze. Un buon allenamento? Usarli visto che fanno parte di un nuovo standard e, come spesso accade, browser e spider di google premiano l’uso degli standard. Altro vantaggio è il poter usare altre classi CSS da associare al contenitore semantico. Ad. esempio:

<section id=”articolo”>Questa è una news</section>

<section  class=”pubblicita”>Comprami! </section>

<section  class=”rssfeed”>Dicono d noi </section>

Un elenco completo e dettagliato anche se non completamente utilizzato. In grassetto quelli che secondo me vale la pena ricordare ed utilizzare:

  • <article>
  • <aside>
  • <details>
  • <figcaption>
  • <figure>
  • <footer>
  • <header>
  • <main>
  • <mark>
  • <nav>
  • <section>
  • <summary>
  • <time>

Si rimanda ai prossimi articoli per vedere qualche esempio.

Ultima modifica 6 Febbraio 2022