html54
Corso html 5, quarta lezione.
 Roberto Abutzu SU uiciechi.it, 2013-02.

Quarta parte: Body ed elementi strutturali.

`**********`

Cos'è il Body e gli elementi strutturali?

Riprendiamo il discorso, introducendo la tag Body e iniziando a creare la struttura della nostra 
prima pagina web.

A questo punto, per non generare equivoci, devo fare una precisazione riguardante la nuova versione 
del linguaggio html, la versione 5, che semplifica di molto la creazione della struttura della 
pagina.

Con il termine "Struttura", intendo il layout della pagina, cioè l'ossatura grafica e strutturata 
della pagina, come se fosse lo scheletro di un palazzo o il telaio di una vettura.

Quindi, quando stiamo creando la pagina, dobbiamo creare prima la struttura, perciò, è come se, nel 
crearla, suddividessimo la pagina in tanti pezzi diversi, come se fossero dei veri e propri 
contenitori, ognuno adibito ad un ruolo ben specifico e che accoglierà i contenuti che decideremo 
per ognuno di essi.

Facciamo una parentesi. Fino alla versione di html4, le pagine venivano composte a settori e ogni 
settore era identificato da una tag denominata ``div``. Il risultato era che le intestazioni, i 
menu, gli elenchi, i contenuti, il piè di pagina, eccetera, erano tutti all'interno di tag DIV 
inserite all'interno della pagina stessa. Ovviamente, per poter formattare con i css i contenuti 
delle tag DIV, bisognava dare ad ogni DIV un identificativo specifico ed univoco per distinguerlo. 
Questo identificativo si chiama Id e deve essere assolutamente unico per ogni pagina.

Faccio un esempio: ``div id="MenuNavigazione"`` contenuti che vedremo più avanti ``/div``

Analizziamo questa stringa. La tag è: ``div``, una tag di apertura che dopo aver inserito i 
contenuti, è chiusa con: ``/div``

Però, gli abbiamo assegnato anche un identificativo: Id, mettendo un uguale e tra le virgolette il 
nome che vogliamo assegnare a questo div. Come avete notato, tale ID è posizionato tra il nome 
della tag DIV e il segno di maggiore per completare e chiudere la tag.

L'identificativo id, possiamo assegnarlo ad ogni elemento, stando molto attenti a quello che 
scriviamo tra le virgolette. Infatti, non è possibile inserire spazi. Quando il nome è composto da 
più parole, ma non è una regola, si può scrivere la seconda parola con la lettera maiuscola, oppure 
separare le due parole con un segno di sottolineato o un trattino, solo per dare modo a chi legge 
di poter capire meglio quello che legge. E' importante riportarlo nel foglio di stile, css, 
esattamente come è stato scritto, perché altrimenti non funzionerà.

Quindi, riassumendo:

1. L'identificativo Id non è altro che un attributo della tag Div.

2. Il valore dell'attributo è il nome inserito tra le virgolette.

3. L'identificativo, che sarebbe una sorta di etichetta univoca, può essere dato a qualsiasi 
elemento purché unico per ogni pagina.

Tornando alla prima parte della spiegazione, con le versioni precedenti di HTML, trovavamo le 
pagine piene di tag Div ed i browser non avevano nessuna possibilità di distinguere un div da 
un'altro, se non si era oculati, inserendo un attributo ID per ognuno di essi.

Con l'html 5, questa problematica viene in buona parte risolta, dando delle nuove Tag specifiche ad 
alcuni settori della pagina stessa. Si precisa che il Tag Div è ancora utilizzato e valido per il 
W3C.

Allora, molto probabilmente vi chiederete come è strutturata attualmente una pagina. Vediamolo 
subito, considerando solo le tag contenute all'interno della tag Body.

Nota bene: si fa presente che nella tag Body abbiamo tutti gli elementi visibili nella pagina che 
il navigatore vede a schermo.

Di seguito, c'è l'elenco delle tag e per ogni tag, è scritta la tag, un segno di uguale e il 
significato:

``header`` = L'intestazione del sito, quella visibile all'utente. Può contenere anche più livelli.

``nav`` = indica il menu di navigazione principale del sito.

``aside`` = significa Di fianco, e all'interno è possibile aggiungere contenuti aggiuntivi, che 
restano graficamente su un lato.

``hgroup`` = questa tag, possiamo utilizzarla per racchiudere più livelli di intestazione, dandogli 
così una gerarchia indipendente dalle altre intestazioni della pagina. Poi vedremo nei dettagli e 
sarà più chiaro.

``section`` = Questa tag, può contenere una porzione di contenuti nella pagina, e viene quasi 
sempre preceduta da una intestazione. Su questa tag, ci sono un po' di polemiche in rete, in quanto 
non è chiaro quando può sostituire la tag Div.

``div`` = Questa era la più usata in passato, e ogni tipologia di contenuto può essere inserito 
dentro alle tag Div.

``footer`` = questa tag è il piè di pagina dove di solito vengono inseriti il Copyright e i dati 
del creatore del sito, o anche i dati aziendali.

Per eseguire un esercizio pratico di come vengono usati questi tag, apriamo il nostro file 
index.html e, all'interno, tra le tag ``body`` e ``/body``, inseriremo le tag sopra elencate. 
Potete anche selezionarle e copiarle direttamente nel vostro file index.html, anche se io consiglio 
di prendere la buona abitudine di scriverle direttamente, se non altro, per acquisirne mentalmente 
la struttura e non avere più il bisogno di andare a leggerle. Questo aiuta ad apprendere meglio in 
futuro il percorso che stiamo facendo.

Aperto il file index.html, inserite dopo l'apertura della tag Body, quindi, dopo la tag ``Body``, 
quanto segue:

``header``

``hgroup``

``h1`` Sito html 5 ``/h1``

``h2`` corso html per non vedenti ``/h2``

``h3`` Il sito scritto tutto in codice ``/h3``

``/hgroup``

``nav``

``h1`` Menu di navigazione ``/h1``

``p`` Qui inseriremo il nostro menu principale ``/p``

``/nav``

``/header``

``div id="content"`` ``!-- inizio contenuti --``

``h2`` Html 5 presentazione del corso ``/h2``

``p`` qui inseriremo i contenuti. ``/p``

``/div`` ``!-- chiuso contenuti --``

``footer``

``p`` piè di pagina ``/p``

``small`` Copyright ``/small``

``/footer``

Scritte o copiate le tag come indicato sopra, abbiamo una struttura minima e potremo iniziare a 
inserirci ulteriori contenuti.

Nota importante! La struttura è di fondamentale importanza per svariati motivi:

1. I siti hanno la stessa struttura in quasi tutte le pagine, cambiando poi solo i contenuti. 
Quindi, una buona struttura, permette di risparmiare parecchio tempo nello sviluppo del sito. Però, 
prima di creare una struttura, è fondamentale avere un'idea ben chiara di quanti tipi di pagine si 
vogliono utilizzare ed avere, quindi, idea anche della struttura delle pagine successive.

2. Utilizzando i fogli di stile a cascata, per la formattazione degli elementi sulla pagina, questa 
viene applicata una sola volta alla struttura e si ripete automaticamente per tutte le pagine del 
sito che hanno la stessa struttura.

3. Una struttura programmata in modo corretto consente ai browser di caricare il sito con rapidità, 
perché non c'è alcun bisogno di personalizzare le informazioni degli elementi previsti dai 
contenuti delle pagine. L'adattamento delle informazioni sui contenuti è previsto dall'html 5, 
quindi, vedremo successivamente come far in modo che anche i browser datati possano caricare la 
nostra pagina esattamente come l'abbiamo creata.

4. Riguardo all'accessibilità per i disabili visivi, avere i settori delle pagine correttamente 
identificati dalle Tag univoche e specifiche, ci snellisce e ci agevola nella navigazione delle 
pagine e ci consente di operare, anche su pagine molto grandi, senza mai perdere l'orientamento, 
cosa che accadeva spesso quando una pagina era stata strutturata con centinaia di div.

Prima di passare all'inserimento dei contenuti ed ulteriori Tag, controlliamo con  una panoramica 
del codice, cosa abbiamo inserito nella nostra index.html fino a questo punto.

Tralasciando la tag html di apertura e chiusura della pagina ed utilizzando i vari tag aperti e 
chiusi con al loro interno la spiegazione di cosa conterranno, il nostro file index.html è formato 
dal seguente codice:

``head`` Contiene le informazioni non visibili che vedremo in seguito ``/head``
``body`` contiene tutti gli elementi della pagina visibili dal navigatore. ``/body``

All'interno della tag body, abbiamo diviso in:

``header`` contiene le  Intestazioni del sito, racchiuse all'interno della tag ``hgroup`` 
intestazioni ``/hgroup`` chiusa da ``/header``

``nav`` Questa Tag racchiuderà tutti gli elementi del menu principale del nostro sito. ``/nav``

Questa tag, può anche essere tranquillamente contenuta all'interno della tag Header.

Chiusa la tag Header con il codice di chiusura ``/header``, abbiamo aperto una tag Div con la tag 
``div id="content"``, dandogli un identificativo con il nome content. Ripeto che l'identificativo 
sarebbe il nome proprio della tag Div. Notate di fianco alla tag Div, un commento. Ricordate, 
specialmente in presenza di tag Div, inserite sempre dei commenti sia all'apertura, sia alla 
chiusura, perché se riprendete il lavoro, anche se fosse per apportare una qualche modifica, 
serviranno a ricordare per quale motivo avete previsto quella tag.

Intestazione di secondo livello e poi i contenuti della Home Page.

Chiusura della tag Div content, con il codice ``/div``, con un commento.

Apertura della Tag Footer con il codice ``Footer``.

Un paragrafo nel quale ho inserito dei contenuti fittizi del piè di pagina e che poi sostituiremo 
con quelli veri.

Una tag Smal con codice ``small`` contenuto Smal ``/small`` che Scrive il carattere di dimensioni 
ridotte e si usa, quasi sempre, per il copyright e per le cose che non si vogliono far risaltare 
troppo.

Chiusura tag Footer con il codice ``/footer``

Ovviamente, come indicato già sopra, tutte queste Tag devono essere contenute tra l'apertura della 
tag Body, con il codice ``body``, e la sua chiusura con il codice ``/body``.

Ho inserito anche dei paragrafi con i codici ``p`` contenuto paragrafo ``/p`` solo  per dare delle 
indicazioni quando si apre la index.html con il browser.

Vi spiego subito cos'è la tag paragrafo, anche se poi la vedremo meglio successivamente.

``p`` Qui inseriremo del testo. ``/p`` Potete notare che è molto semplice.

Ecco spiegato come si compone la tag di apertura del paragrafo: segno minore, lettera p, segno 
maggiore.

Ecco spiegato come si compone la tag di chiusura del paragrafo: segno minore, la barra con shift 
più 7, lettera p, segno maggiore.

Nota importante: anche se l'Html 5 non crea differenze tra maiuscole e minuscole, la lettera p di 
questa tag, ma in genere tutto il testo delle tag, deve sempre essere minuscolo, altrimenti  il 
validatore del W3C ci darà un messaggio di errore per ogni volta che inseriamo una maiuscola.

Vi rimando alla prossima parte, Nella quale inizieremo a vedere i seguenti elementi: le 
Intestazioni, i Link, le liste e creeremo il nostro menu principale per la navigazione del sito.

`***********`

Per ulteriori spiegazioni, scrivere a: `Roberto Abutzu roberto@evyweb.it`_

Torna all'indice