Introduzione a HTML 5: costruire la pagina web
HTML 5 e le tecnologie collegate rappresentano una rivoluzione importante nel mondo del web design.
Nello scorso articolo abbiamo offerto una panoramica sull’argomento; in questo articolo cominciamo a vedere il nuovo codice.
Una pagina scritta in HTML 5
Partiamo subito con un esempio.
<!DOCTYPE html> <html lang="it"> <head> <meta charset="utf-8"> <meta name="description" content="Esempio di pagina web costruita con HTML 5"> <meta name="keywords" content="html5, web design"> <title>Pagina web HTML 5</title> <link rel="stylesheet" href="style.css"> </head> <body> <!-- contenuto della pagina --> </body> </html>
Le novità più importanti sono evidenti e mirano soprattutto a semplificare e accorciare il codice.
- la dichiarazione del DOCTYPE è ridotta al minimo necessario.
- l’elemento html è altrettanto breve, contenendo solo (opzionalmente) la lingua di riferimento per la pagina
- il nuovo elemento meta “charset” abbrevia l’indicazione dell’encoding
- l’attributo “type” per i file inclusi con “link” o “script” non è più necessario
- possiamo omettere la barra di chiusura per i self closing tags.
In merito all’ultimo punto, significa che in HTML 5 possiamo ad esempio tornare a scrivere <br> anzichè <br/>.
Consigliamo comunque di non adottare subito questa nuova modalità, per mantenere maggior compatibilità con i browser più vecchi.
I nuovi elementi all’interno del body
Vediamo ora tutti i nuovi elementi che caratterizzano semanticamente la nostra pagina, espandendo il contenuto del body.
<body> <header> <h1>GiBiLogic</h1> </header> <nav> <ul> <li><a href="#">Azienda</a></li> <li><a href="#">Servizi</a></li> <li><a href="#">Contatti</a></li> </ul> </nav> <section> <!-- contenuto principale della pagina --> </section> <aside> <!-- banner, in evidenza, altro --> </aside> <footer> Copyright 2012 GiBiLogic </footer> </body>
Come possiamo vedere, molte DIV possono essere sostituite da elementi più specifici che indicano con più chiarezza la propria funzione e che quindi potranno facilitare:
- l’indicizzazione della pagina da parte dei motori
- la ricerca di contenuti nel sito
- la creazione di versioni mobile e/o ad alta accessibilità delle nostre pagine
Retrocompatibilità
Prima che vi spaventiate, ricordatevi che non siamo obbligati a usare i nuovi elementi.
Gli elementi DIV valgono ancora e questo garantisce che le pagine web compatibili con XHTML siano correttamente interpretate anche secondo lo standard HTML 5.
E’ solo nel nostro interesse che vale la pena di aggiornarle utilizzando i nuovi tag, in modo da ottenere i benefici riportati nella sezione precedente.
Dettaglio degli elementi
I nuovi elementi presentati fin qui non hanno bisogno di lunghe spiegazioni. Riepiloghiamoli rapidamente:
- header include l’intestazione del sito, che tipicamente contiene un logo, il nome del sito, un motto o una descrizione, talvolta anche un banner promozionale.
- nav include come è ovvio il menù di navigazione principale
- aside include un menù secondario e/o altre informazioni quali i contatti, gli ultimi articoli scritti, un blogroll…
- section identifica una macroarea della pagina; è molto probabile che una pagina web ne contenga più di una
- footer include solitamente i credits e/o un piccolo riassunto dei dati anagrafici e geografici
Questi elementi riguardano la struttura generale della pagina.
Article
Un altro interessante elemento introdotto da HTML 5 è article, che identifica uno specifico contenuto (un articolo, il post di un forum, un commento, e cosi via).
Riprendendo il codice di esempio illustrato sopra, la nostra section potrebbe contenere:
<section> <article> Questo è il primo articolo </article> <article> Questo è il secondo articolo </article> </section>
E ora facciamo un altro passo avanti:
<section> <article> <header> <h1>Titolo del primo articolo</h1> </header> Questo è il primo articolo <footer> <p>Commenti (0)</p> </footer> </article> <article> <header> <h1>Titolo del secondo articolo</h1> </header> Questo è il secondo articolo <footer> <p>Commenti (0)</p> </footer> </article> </section>
Come potete vedere, possiamo utilizzare header e footer per identificare l’intestazione e il piè di pagina di ciascun articolo, oltre che della pagina intera.
Vi sembra abbastanza semantico?