Guida completa - Edizioni LSWR

- Alessandra Salvaggio -
HTML5 e CSS3
Guida completa
Tutti i tag HTML fino a HTML5 >>
Le caratteristiche avanzate di HTML5 >>
Canvas, geolocalizzazione, trascinamento >>
Tutto sui CSS, dai box alle trasformazioni 3D >>
HTML5
e CSS3
Guida completa
Alessandra Salvaggio
HTML5 e CSS3 | Guida completa
Autrice: Alessandra Salvaggio
Collana:
Editor in Chief: Marco Aleotti
Progetto grafico: Roberta Venturieri
Immagine di copertina: © ilyast | Thinkstock
© 2015 Edizioni Lswr* – Tutti i diritti riservati
ISBN: 978-88-6895-231-0
I diritti di traduzione, di memorizzazione elettronica, di riproduzione e adattamento totale o parziale con qualsiasi mezzo (compresi i microfilm e le copie fotostatiche), sono riservati per tutti i Paesi. Le fotocopie per uso personale del lettore possono essere
effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto dall’art. 68, commi 4 e 5, della
legge 22 aprile 1941 n. 633.
Le fotocopie effettuate per finalità di carattere professionale, economico o commerciale o comunque per uso diverso da
quello personale possono essere effettuate a seguito di specifica autorizzazione rilasciata da CLEARedi, Centro Licenze e
Autorizzazioni per le Riproduzioni Editoriali, Corso di Porta Romana 108, 20122 Milano, e-mail [email protected]
e sito web www.clearedi.org.
La presente pubblicazione contiene le opinioni dell’autore e ha lo scopo di fornire informazioni precise e accurate. L’elaborazione
dei testi, anche se curata con scrupolosa attenzione, non può comportare specifiche responsabilità in capo all’autore e/o all’editore per eventuali errori o inesattezze.
L’Editore ha compiuto ogni sforzo per ottenere e citare le fonti esatte delle illustrazioni. Qualora in qualche caso non fosse riuscito
a reperire gli aventi diritto è a disposizione per rimediare a eventuali involontarie omissioni o errori nei riferimenti citati.
Tutti i marchi registrati citati appartengono ai legittimi proprietari.
Via G. Spadolini, 7
20141 Milano (MI)
Tel. 02 881841
www.edizionilswr.it
Printed in Italy
Finito di stampare nel mese di giugno 2015 presso “Rotolito Lombarda” S.p.A., Pioltello (MI)
(*) Edizioni Lswr è un marchio di La Tribuna Srl. La Tribuna Srl fa parte di
.
Sommario
INTRODUZIONE........................................................................................................11
Parte 1 - Introduzione
1.
CHE COS’È HTML ............................................................................................15
Un documento HTML............................................................................................................... 16
Attributi e valori.......................................................................................................................... 19
La struttura base di un documento HTML......................................................................... 20
Come si scrive il codice HTML...............................................................................................23
Editor HTML................................................................................................................................23
2. LA CODIFICA DEI CARATTERI E L’USO DEI SIMBOLI .........................25
Riferimenti di carattere ed entità...........................................................................................28
Dichiarare la codifica.................................................................................................................29
Salvare correttamente il file.....................................................................................................29
3. HTML, XHTML, HTML5: NON FACCIAMO CONFUSIONE..................31
XHTML.........................................................................................................................................33
HTML5..........................................................................................................................................36
4. DIFFERENZE FRA HTML E XHTML ...........................................................39
Doctype e namespace............................................................................................................. 40
Annidamento dei tag................................................................................................................. 41
Chiusura di tutti i tag................................................................................................................. 41
Caratteri minuscoli ...................................................................................................................42
I valori degli attributi non possono mancare e vanno posti tra virgolette ..................42
Entità.............................................................................................................................................43
ID name........................................................................................................................................43
Gli script.......................................................................................................................................43
Compatibilità.............................................................................................................................. 44
5. STRUMENTI PER LAVORARE CON HTML E CSS...................................47
Validatori......................................................................................................................................47
Editor..............................................................................................................................................51
Test per il supporto dei browser.............................................................................................56
5
HTML5 e CSS3 | Guida completa
6. ORGANIZZARE IL LAVORO.........................................................................59
La pagina principale del sito................................................................................................... 60
Parte 2 - Tag HTML
7. LA PAGINA BASE.............................................................................................65
HTML 4.01 ..................................................................................................................................65
XHTML........................................................................................................................................ 66
HTML5......................................................................................................................................... 66
I commenti...................................................................................................................................67
8. STRUTTURARE LE PAGINE...........................................................................69
I paragrafi, i ritorni a capo e i filetti orizzontali...................................................................69
I titoli...............................................................................................................................................71
Div e Span....................................................................................................................................73
9. GLI ELENCHI..................................................................................................... 75
Gli elenchi strutturati ...............................................................................................................78
Liste di definizioni......................................................................................................................79
10. FORMATTAZIONE CON HTML/XHTML..................................................81
Dimensioni dei caratteri, apici e pedici.................................................................................87
Tag non supportati in HTML5................................................................................................ 89
Attributi non supportati da HTML5: lo sfondo della pagina.......................................... 90
11. LE IMMAGINI ..................................................................................................93
Riferimenti assoluti e relativi...................................................................................................93
Procurarsi le immagini............................................................................................................. 96
Preparare le immagini per il web........................................................................................... 98
Inserire le immagini ............................................................................................................... 100
Testo alternativo e descrizione lunga..................................................................................103
Spazio intorno alle immagini.................................................................................................104
Icone per i preferiti...................................................................................................................104
12. I COLLEGAMENTI.........................................................................................109
Ancore...........................................................................................................................................111
Target............................................................................................................................................112
Documenti da scaricare........................................................................................................... 113
Relazione fra il documento corrente e quello collegato.................................................. 113
Dispositivo per cui un collegamento è ottimizzato..........................................................114
Usare un’immagine come collegamento ............................................................................116
Mappe immagine......................................................................................................................116
Tabindex......................................................................................................................................118
Accesskey...................................................................................................................................119
6
Sommario
13. LE TABELLE....................................................................................................... 121
Dimensioni delle tabelle......................................................................................................... 124
Formattazione delle tabelle................................................................................................... 126
Allineamento delle tabelle.....................................................................................................128
Allineamento del testo nelle celle ....................................................................................... 129
Gruppi di celle...........................................................................................................................130
I bordi..........................................................................................................................................134
Tabelle complesse.................................................................................................................... 135
14. I MODULI......................................................................................................... 139
Inserire elementi in un modulo..............................................................................................141
Raggruppare gli elementi.......................................................................................................154
Accessibilità.............................................................................................................................. 155
15. MULTIMEDIA E SCRIPT............................................................................... 159
Multimedia................................................................................................................................. 159
Script........................................................................................................................................... 165
16. I FRAME E GLI IFRAME................................................................................ 167
No frame..................................................................................................................................... 172
I collegamenti nei frame......................................................................................................... 172
iframe.......................................................................................................................................... 174
Parte 3 - Tag HTML5
17. GLI ELEMENTI STRUTTURALI................................................................... 179
<header>.....................................................................................................................................181
<nav>...........................................................................................................................................181
<section>................................................................................................................................... 182
Blocchi semantici..................................................................................................................... 183
18. MICRODATA E MICROFORMAT.............................................................. 193
Google snippet.......................................................................................................................... 195
Microformat..............................................................................................................................198
19. VIDEO E AUDIO.............................................................................................201
Il tag per includere un file video...........................................................................................201
Il markup per includere un file audio..................................................................................206
Codec e contenitori................................................................................................................206
Parte 4 - Caratteristiche avanzate di HTML5
20.CANVAS............................................................................................................ 211
La coordinate dei canvas........................................................................................................ 216
Disegnare percorsi................................................................................................................... 216
7
HTML5 e CSS3 | Guida completa
Disegnare con le curve di Bézier......................................................................................... 220
Disegnare archi e circonferenze.......................................................................................... 225
Stili linea.................................................................................................................................... 230
Gradienti..................................................................................................................................... 231
Immagini.................................................................................................................................... 236
Il testo........................................................................................................................................240
Ombre........................................................................................................................................ 243
Composizioni............................................................................................................................244
Animazioni................................................................................................................................ 247
I canvas in Internet Explorer................................................................................................. 252
21.GEOLOCALIZZAZIONE.............................................................................. 255
Recuperare le coordinate geografiche............................................................................... 256
Gestione degli errori............................................................................................................... 258
Mostrare una mappa di Google...........................................................................................260
22. WEB STORAGE............................................................................................. 263
Rilevare le modifiche a localStorage....................................................................................274
Problemi di quota.................................................................................................................... 276
Sessioni...................................................................................................................................... 276
23. APPLICAZIONI OFFLINE.............................................................................277
Il flusso degli eventi................................................................................................................ 283
Gestione degli errori............................................................................................................... 286
Problemi in fase di sviluppo.................................................................................................. 287
24. WEB WORKER.............................................................................................. 289
Comunicazione bidirezionale................................................................................................ 291
Passare oggetti......................................................................................................................... 293
Terminare il worker................................................................................................................. 295
Gestione degli errori............................................................................................................... 297
Importare script esterni......................................................................................................... 299
Oggetti a cui può accedere il worker.................................................................................. 299
Worker condivisi......................................................................................................................300
25.TRASCINAMENTO...................................................................................... 305
Trascinare altri oggetti e recuperare informazioni sugli oggetti trascinati................ 318
Trascinare file........................................................................................................................... 325
Parte 5 - CSS
26. INTRODUZIONE AI CSS.............................................................................. 331
La sintassi CSS......................................................................................................................... 332
Selettori, classi e id................................................................................................................. 336
Selettori sulla base di attributi............................................................................................. 343
8
Sommario
Come fornire le indicazioni di stile...................................................................................... 345
Media query............................................................................................................................. 350
Unità di misura.......................................................................................................................... 351
Colori.......................................................................................................................................... 352
Validare i CSS........................................................................................................................... 353
Proprietà specifiche per i browser...................................................................................... 353
Commenti................................................................................................................................. 353
27. FORMATTARE IL TESTO..............................................................................355
Tipo di font................................................................................................................................ 355
Dimensione dei font............................................................................................................... 356
Stile dei font...............................................................................................................................357
Maiuscole e minuscole.......................................................................................................... 358
Colore del font.......................................................................................................................... 359
Allineamento............................................................................................................................ 359
Interlinea................................................................................................................................... 359
Spaziatura.................................................................................................................................360
Lo spazio bianco......................................................................................................................360
Rientri.........................................................................................................................................360
Sfondo del testo........................................................................................................................ 361
Font incorporati o font Web................................................................................................. 362
L’ombra (CSS3)........................................................................................................................364
Text-overflow (CSS3)............................................................................................................. 365
Testo a capo (CSS3)............................................................................................................... 367
Modifica del cursore............................................................................................................... 368
28.BOX................................................................................................................... 371
Box model................................................................................................................................... 371
Ombra (CSS3).......................................................................................................................... 386
Sfondo........................................................................................................................................ 389
Overflow....................................................................................................................................403
Box ridimensionabili (CSS3).................................................................................................405
Visibilità.....................................................................................................................................406
Allineamento verticale...........................................................................................................406
Display block, inline e none..................................................................................................406
29. POSIZIONE DEGLI ELEMENTI................................................................... 413
Posizione..................................................................................................................................... 413
Elementi flottanti...................................................................................................................... 417
Flex (CSS3)............................................................................................................................... 422
Impilamento 3D.......................................................................................................................430
30. FORMATTARE GLI ELENCHI...................................................................... 431
Formattazione degli elenchi nidificati................................................................................434
9
HTML5 e CSS3 | Guida completa
31. FORMATTARE LE TABELLE........................................................................ 437
Le celle vuote............................................................................................................................442
Allineamento............................................................................................................................443
Centrare una tabella...............................................................................................................444
Flusso del testo intorno alla tabella....................................................................................444
32.IMMAGINI......................................................................................................445
Opacity (CSS3)........................................................................................................................446
Image sprite..............................................................................................................................449
33. I MODULI ....................................................................................................... 453
34. TRASFORMAZIONI, TRANSIZIONI E ANIMAZIONI......................... 459
Trasformazioni 2D...................................................................................................................459
Trasformazioni 3D...................................................................................................................463
Transizioni.................................................................................................................................468
Animazione............................................................................................................................... 472
35. LAYOUT A COLONNE E NUMERAZIONE DEI CAPITOLI................. 487
Numerazione delle sezioni.....................................................................................................491
36.STAMPA.......................................................................................................... 493
Nascondere un elemento...................................................................................................... 495
Stampare l’indirizzo di un URL.............................................................................................496
Interruzioni di pagina............................................................................................................. 497
Vedove e orfani........................................................................................................................498
APPENDICE A - COSTRUIRE ESPRESSIONI REGOLARI............................. 499
INDICE ANALITICO............................................................................................. 505
10
Introduzione
Sono passati più di 20 anni da quando, nel 1991, Tim Barners Lee ha inventato al CERN
di Ginevra il linguaggio HTML.
20 anni nel mondo di Internet e della tecnologia in generale sono un’eternità, eppure
rimane ancora la base costituiva delle pagine web, anche quando le si coniuga con
altre tecnologie.
Chiunque voglia approcciare la creazione di siti Internet deve partire da qui. Non si può
prescindere da una solida conoscenza di queste basi.
Deve conoscere tag e attributi “storici”, oltre alle novità introdotte dall’ultima versione
del linguaggio, HTML5.
Non si può nemmeno prescindere da CSS, anche nella sua ultima versione CSS3, che
nel tempo si è fatto carico di descrivere la formattazione delle pagine HTML.
Questo libro si propone proprio questo: fornire le basi di HTML e CSS in modo da imparare a creare le tradizionali pagine Internet ed, eventualmente, a costruire poi anche
soluzioni più complesse, in unione con altre tecnologie quali Java, ASP, PHP ecc. (che
però non sono trattate in questo libro).
Per completezza, ho scelto di dedicare una sezione alle novità HTML5 che richiedono
l’interazione con JavaScript, anche se questo argomento richiede qualche conoscenza
più avanzata. Ho cercato, comunque di spiegare tutto passo passo, in modo da rendere anche questa parte accessibile a tutti.
Per il resto, si parte da zero, in modo da permettere a tutti i lettori di avvicinarsi ad
HTML e CSS fin dai loro rudimenti.
Il libro può essere anche considerato un riferimento per trovare velocemente il comportamento di un tag, un attributo o una proprietà CSS.
Booksite
Alla pagina http://www.sos-office.it/libro-html5Css3.html trovate tutti i file per svolgere gli esercizi del libro.
11
Parte 1
Introduzione
13
1
Che cos’è HTML
Cominciamo a fare conoscenza con HTML. Daremo le indi-
cazioni di base per orientarci nei capitoli che seguono.
Prima di addentrarci nei dettagli di HTML-XHTML e CSS è necessaria una breve premessa su HTML. Questo ci permetterà di chiarire i concetti base e le parole fondamentali che ci serviranno nei prossimi capitoli.
Naturalmente, immaginiamo che tutti i nostri lettori abbiano familiarità con il web,
almeno come utenti.
I siti web sono banche dati contenenti ipertesti. Un ipertesto è un documento che
contiene dei riferimenti a pagine, immagini e suoni che si trovano in altre parti del
documento stesso o in documenti che possono essere presenti nella stessa banca
dati o in banche dati diverse. È possibile muoversi da una pagina all’altra dell’ipertesto o all’interno della stessa pagina semplicemente facendo clic con il mouse
in punti particolari, chiamati collegamenti o link. Un link è un collegamento tra
diverse pagine o sezioni di pagina ed è riconoscibile all’interno della pagina web
perché, solitamente (purtroppo non sempre, ma questo è un altro discorso), è
visualizzato in un colore diverso (normalmente il blu) da quello del testo ordinario
ed è sottolineato.
L’autore dell’ipertesto predispone dei collegamenti che aprono all’utente molti possibili percorsi all’interno della pagina; l’utente è lasciato libero di scegliere quale
percorso seguire, scoprendo di volta in volta strade nuove e infinite variazioni di
“direzione”, ma non può creare dei link nuovi.
Il collegamento è realizzato specificando l’indirizzo, URL, della pagina che si vuole raggiungere. L’URL (Uniform Resource Locator) è un qualsiasi tipo di indirizzo Internet,
15
HTML5 e CSS3 | Guida completa
sia esso un recapito di posta elettronica o il riferimento necessario per raggiungere
una pagina web. La risorsa cui l’URL fa riferimento può essere nella stessa banca dati
della pagina da cui è richiamata o in un’altra banca dati.
Le pagine che compongono un sito web sono raccolte in una banca dati controllata da uno speciale programma: il web server. Nel linguaggio comune, quando
parliamo di web server intendiamo sia il computer su cui si trovano fisicamente
le pagine del sito sia, appunto, il programma che le gestisce. Il programma web
server deve essere in grado di rilevare le richieste di pagine specifiche e, quindi,
fornirle all’utente che le richiede.
Le pagine che costituiscono un sito sono file di testo scritti in un linguaggio particolare
chiamato HTML (HyperText Markup Language).
HTML non è un vero e proprio linguaggio di programmazione, ma è, appunto, un
markup language, cioè un linguaggio di istruzioni che definiscono le caratteristiche di un documento e ne guidano la composizione sullo schermo. In sostanza,
non si crea la pagina così come viene visualizzata, ma la si descrive (“questo è un
titolo che deve essere alto 5 e visualizzato in rosso, qui colloca un immagine che
si trova in questo file ecc.”).
Per interpretare correttamente le pagine descritte con HTML, l’utente finale dovrà richiamarle e visualizzarle attraverso un programma specifico (installato dal lato client,
cioè sul computer dell’utente stesso) detto browser.
Sarà il browser a leggere la descrizione della pagina e a comporla sullo schermo, seguendo le indicazioni date dall’autore (ignoriamo volutamente tutte le polemiche relative alle capacità di interpretazione e rendering dei browser).
I file che contengono le istruzioni HTML possono essere redatti con qualsiasi editor di
testi (anche se, naturalmente, esistono programmi dedicati che facilitano il lavoro) e
devono essere salvati con estensione .htm o .html.
Un documento HTML
Abbiamo detto che HTML descrive la pagina web. In realtà, almeno inizialmente,
HTML è stato pensato per descrivere la struttura dei documenti, la funzione di ogni
loro parte, indipendentemente dal loro aspetto estetico. In pratica, è come se HTML
dicesse: “questa è l’intestazione del documento, questo il corpo, questo un titolo, questo un paragrafo, questo un elenco ecc.”.
Ora, si tratta di capire come si danno queste informazioni in HTML.
Innanzi tutto, diciamo che HTML è un linguaggio a tag derivato da SGML (Standard
Generalized Markup Language).
16
Che cos’è HTML
Parte 1 - Capitolo 1
Un tag, termine che potremmo tradurre come “targhetta”, è facilmente riconoscibile
nel documento HTML: infatti è sempre racchiuso tra un segno di minore e uno di maggiore (<>), più correttamente definiti parentesi uncinate.
I tag si presentano quasi sempre a coppie: un tag di apertura e uno di chiusura, che è
identico a quello di apertura a parte il fatto che, dopo la prima parentesi uncinata, è
presente uno slash (/).
Ogni coppia di tag definisce la funzione di ciò che è contenuto al suo interno.
Facciamo un esempio per chiarire meglio.
<body>
Contenuto del corpo del documento
</body>
La coppia di tag è <body> </body>.
Tutto quello che si trova fra questi due tag costituisce il corpo del documento.
Le coppie di tag possono essere annidate, ossia all’interno di una coppia di tag ne possono essere inserite altre, purché si rispetti l’ordine di apertura e chiusura. Il tag aperto
prima va chiuso dopo. Anche qui serve un esempio.
<body>
<h1>Titolo</h1>
<p>Primo paragrafo</p>
<p>Secondo paragrafo</p>
</body>
NOTA
I nostri tag <body> </body> che definiscono il corpo del documento ora contengono i tag
<h1></h1> che definiscono il titolo principale della pagina e le due coppie di tag <p> </
p> che definiscono i paragrafi del documento.
La coppia <body> </body> è il contenitore principale e tutti i tag al suo interno
devono essere chiusi prima che sia possibile chiudere </body>. All’interno di una
coppia <p> </p> potrebbero essere contenute altre coppie di tag che introducono
altri elementi.
Alcuni browser eseguono un rendering corretto anche di pagine che non
rispettano l’ordine di chiusura dei tag. I browser sono in grado di “chiudere un occhio” anche su altre inesattezze che si trovano nei documenti
HTML. È bene comunque non approfittare di queste debolezze e cercare
di scrivere sempre documenti formalmente corretti. In questo possono
aiutarvi i così detti validatori di codice, ma di questo parleremo più
avanti nel libro.
17
HTML5 e CSS3 | Guida completa
Ci sono anche tag che non prevedono un elemento di chiusura. Vengono definiti tag
vuoti. Un esempio di questo tipo è il tag <hr>, che introduce nella pagina una riga verticale (Horizontal Rule).
Ecco come possiamo inserire una riga fra i due paragrafi del nostro esempio precedente.
<body>
<h1>Titolo</h1>
<p>Primo paragrafo</p>
<hr>
<p>Secondo paragrafo</p>
</body>
I tag che possono contenere al loro interno altre coppie di tag, cioè altri elementi della
pagina, sono definiti tag di livello blocco. Gli altri tipi di tag vengono definiti elementi
in linea. Le specifiche di HTML definiscono in modo piuttosto labile la distinzione fra
un elemento di tipo in blocco e uno di tipo in linea: si limitano a spiegare che un elemento di livello blocco viene mostrato su una nuova riga, come un nuovo paragrafo
in un libro, mentre un elemento in linea viene mostrato sulla riga corrente, come se si
trattasse di una nuova parola all’interno di un paragrafo.
Noi possiamo aggiungere che gli elementi di livello blocco sono gli elementi strutturali di una pagina web e, pertanto, possono contenere altri elementi di livello
blocco, elementi in linea e testo. Gli elementi in linea, invece, generalmente possono contenere esclusivamente altri elementi in linea e testo.
Un tipico esempio di tag in linea è costituito dai tag <em> e <strong>, che servono
per mettere in rilievo il testo contenuto al loro interno, che viene reso, rispettivamente, in corsivo e grassetto.
Ecco un esempio:
<body>
<h1>Titolo</h1>
<p><em>Primo</em> paragrafo</p>
<hr>
<p><strong>Secondo</strong> paragrafo</p>
</body>
NOTA
La Figura 1.1 mostra come si presenta la pagina che contiene il codice appena fornito,
se aperta con il browser Mozilla Firefox 36.
18
Il codice non è completo: mancano le parti di apertura della pagina (che
comunque non vengono visualizzate). Per ora trascuriamo volutamente l’argomento. Ci torneremo più avanti.
Che cos’è HTML
Parte 1 - Capitolo 1
Figura 1.1 - La pagina visualizzata da Mozilla Firefox.
Attributi e valori
Molti tag HTML possono essere “arricchiti” di attributi che specificano meglio il comportamento del tag stesso. Gli attributi si inseriscono nel tag di apertura, ma non in
quello di chiusura, che rimane invariato.
Come al solito, facciamo un esempio:
<body bgcolor="blue">
contenuto
</body>
NOTA
L’attributo bgcolor permette di impostare il colore di sfondo della pagina che, in questo
caso, sarà blu.
Fra gli attributi e i loro valori va sempre posto un segno di uguale (=).
Noi abbiamo messo il valore blue fra virgolette. In HTML non sono obbligatorie, mentre lo sono in XHTML. Nel Capitolo 4 spiegheremo bene la distinzione.
Ci sono dei tag, come quelli che permettono di inserire un’immagine (<img>) o di creare
un collegamento (<a>), dove l’attributo è praticamente obbligatorio: infatti, serve, ri-
19
HTML5 e CSS3 | Guida completa
spettivamente, per specificare il nome e il percorso dell’immagine da inserire e il nome
e il percorso della pagina a cui punta il collegamento.
<img src="immagine.gif">
<a href="paginaDaAprire.html">Fai clic</a>
Avrete certamente anche notato che il tag <img> non richiede chiusura.
Concludiamo ricordando che ci sono tag che possono accettare più di un attributo. Per esempio, il tag <img>, oltre al nome dell’immagine da caricare, può
contenere, fra gli altri, gli attributi height e width, che specificano le dimensioni
dell’immagine stessa.
NOTA
<img src="immagine.gif" height="100" witdh="100">
Specificare le dimensioni di un’immagine facilita il rendering della pagina.
Normalmente, infatti, le immagini sono l’ultima parte caricata di una pagina,
dato che sono gli elementi che richiedono più tempo per il caricamento. Se
se ne specificano le dimensioni, il browser sa quanto spazio lasciare libero
per l’immagine stessa. Altrimenti, il testo dovrà essere ridisposto dopo che
le immagini sono state caricate.
La struttura base di un documento HTML
Tutte le pagine HTML dovrebbero rispettare una struttura base. Ecco un esempio:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Titolo della pagina</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="pasta, pane, pizza">
</head>
NOTA
<body>
corpo del documento
</body>
</html>
20
Anche se non è obbligatorio, in questo esempio abbiamo scelto di indentare
il codice, ovvero di modificare i rientri rispetto al margine sinistro, per esplicitare meglio il rapporto fra i tag. L’indentazione evidenzia quali tag sono
annidati in altri tag.
Che cos’è HTML
Parte 1 - Capitolo 1
Cominciamo dall’inizio. Il primo elemento che si dovrebbe trovare in una pagina HTML
è la DTD o Document Type Definition: essa specifica il linguaggio di descrizione utilizzato nella pagina. Di HTML esistono diverse versioni. Ogni versione è descritta in
un documento disponibile su Internet. La DTD specifica quale si seguirà in modo da
aiutare il browser a interpretare correttamente il documento.
Proviamo ad analizzare la DTD del nostro esempio:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
NOTA
Oltre alla parola DOCTYPE troviamo le seguenti indicazioni:
• HTML: il tipo di linguaggio utilizzato è HTML;
• PUBLIC: il documento è pubblico;
• -W3C: indica che le specifiche del linguaggio che seguiremo sono state definite
dal W3C (ne riparleremo più avanti), ossia l’ente che si occupa di standardizzare HTML. Il segno meno (-) che precede questa indicazione significa che le
specifiche non sono state registrate dall’ISO. Per le specifiche registrate dall’ISO è previsto il segno +;
• DTD HTML 4.01 Transitional: indica che il documento seguirà le specifiche della
versione 4.01 di HTML. La versione 4 di HTML ha diverse “sottoversioni”. L’aggettivo Transitional indica che si seguirà appunto questa sottoversione (riparleremo anche di questo);
• EN: la lingua con cui è scritta la DTD è l’inglese.
In questo esempio stiamo proponendo una doctype HTML 4. Esistono doctype diverse (XHTML e HTML5) sulle quali ritorneremo nel corso del libro.
In alcuni casi una DTD può essere seguita dall’indirizzo Internet in cui è disponibile il
file con la descrizione del linguaggio che si adotterà.
Dopo la DTD, passiamo ai tag HTML veri e propri.
Tutto il contenuto di un documento HTML (a esclusione della DTD) deve essere contenuto fra i tag <html> e </html>. All’interno di questo grande contenitore devono esserci sempre due sezioni: <head> </head> e <body> </body>.
La sezione <head> </head> rappresenta l’intestazione del documento. Contiene elementi non visibili e il titolo della pagina (da non confondere con i titoli realizzati col tag
<h1>, visto sopra), visibile nella barra del titolo del browser. Il titolo va sempre chiuso
fra i tag <title> e </title>. La Figura 1.2 mostra la pagina che si ottiene con il codice di
esempio riportato sopra. Il titolo <title> è segnalato da una freccia.
21
HTML5 e CSS3 | Guida completa
Figura 1.2 - Il titolo della pagina.
È molto importante che il titolo non manchi, perché è il primo elemento che vediamo di
una pagina; inoltre, viene utilizzato per identificare la pagina nei preferiti dei browser.
Oltre al titolo, nell’intestazione del documento possono essere presenti tag di tipo
<meta>, che permettono di specificare metainformazioni, ossia informazioni che riguardano la pagina che le contiene, per esempio il nome dell’autore, le parole chiave
per la ricerca della pagina nei motori di ricerca, la descrizione della pagina, il programma usato per scriverla ecc.
Nel nostro esempio ne abbiamo riportate due. La prima:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
è un meta di tipo http-equiv, il che significa che veicola informazioni che potrebbero
essere passate attraverso intestazioni http. Se vi sembra complicato, non preoccupatevi.
In realtà questo tag indica semplicemente che il nostro è un file di testo e quale set di caratteri utilizza. Nel caso dell’esempio stiamo dicendo che useremo il set di caratteri per
le lingue europee occidentali. Nel prossimo capitolo torneremo su questo argomento.
Il secondo tipo di meta che abbiamo usato nel nostro esempio:
<meta name="keywords" content="pasta, pane, pizza">
è di tipo keywords e permette di elencare le parole chiave con cui un documento deve
essere indicizzato nei motori di ricerca.
Altri meta possibili sono description e author, che permettono di fornire una descrizione per la pagina e il nome dell’autore.
22
Che cos’è HTML
Parte 1 - Capitolo 1
Terminata la descrizione dell’intestazione, passiamo alla sezione <body> </body>. Essa
rappresenta il corpo del documento. Questa sezione contiene tutto ciò che è visibile
nella finestra del browser. Praticamente, la maggior parte di quello che descriveremo
nel corso del libro dovrà essere inserito in questa sezione.
Come si scrive il codice HTML
Concludiamo questo capitolo con una semplice nota. HTML non ha rigide regole per
la disposizione dei comandi: purché si rispetti la sua logica, per esempio, sarebbe possibile scrivere un file HTML anche senza andare mai a capo. Inoltre, HTML non fa
distinzione fra le maiuscole e le minuscole (non è cioè case sensitive).
Per ragioni di chiarezza, si è diffusa la consuetudine di scrivere i tag e gli attributi con
le lettere maiuscole e i valori con le lettere minuscole.
Vedremo più avanti che XHTML (uno dei filoni di HTML) prevede invece che tutti i
comandi siano scritti con le lettere minuscole.
I file HTML vanno salvati con estensione .html o .htm.
È opportuno, anche se non è obbligatorio, che il nome dei file HTML non contenga
spazi vuoti. Se avete bisogno di nomi composti da più parole, potete separarle con
un trattino basso o underscore (_). Potete anche scegliere di mettere le parole che
compongono il nome attaccate, scrivendo le parole successive alla prima con l’iniziale
maiuscola (per esempio, miaPrimaPagina.html).
Quando salvate un file badate alle maiuscole e minuscole: i web server, infatti, fanno
distinzione fra maiuscole e minuscole. Il file Fiore.html è diverso dal file fiore.html. Se
non fate attenzione potreste avere problemi con i collegamenti (comunque, per ora
non preoccupatevi, torneremo sull’argomento più avanti).
Editor HTML
Per scrivere il vostro codice HTML avete diverse possibilità. Naturalmente, sapete che
esistono editor visuali come Adobe Dreamweaver che vi permettono di lavorare in
modo interattivo e lasciare che sia l’editor a scrivere il codice. In questi editor è anche
possibile scrivere direttamente il codice HTML.
Se non disponete di questi editor, o comunque preferite scrivere il codice manualmente,
potete ricorrere a editor di testo che dispongono di dizionari che riconoscono la sintassi HTML. I tag e gli attributi verranno mostrati con colori diversi dal testo normale in
modo da evidenziarli facilmente. Di norma, questi editor vi aiutano a mantenere consistente il vostro codice (per esempio, chiudendo correttamente i tag) e salvano i vostri
file in modo corretto assegnando loro automaticamente l’estensione .html o .htm.
23
HTML5 e CSS3 | Guida completa
In rete trovate moltissimi editor, basterà fare una ricerca. Per la scrittura di questo
libro ho utilizzato Notepad ++, un editor gratuito che potete scaricare dalla pagina
http://notepad-plus-plus.org/. A differenza del Blocco Note di Windows, Notepad ++
evidenzia i tag e i comandi di HTML e CSS, rendendo più semplice la scrittura del codice. Un altro editor che mi sento di consigliarvi è Edit Plus (http://www.editplus.com),
che potete usare per scrivere codice con vari linguaggi (non solo HTML) scaricando
dal sito del produttore gli appositi dizionari.
Un ulteriore editor interessante è HTMLPad (http://www.htmlpad.net/) che, però,
non è gratuito (il costo si aggira intorno ai 30 euro). È disponibile una versione di prova per 30 giorni.
Come abbiamo già accennato, un’altra possibilità, è quella di scrivere i vostri file HTML
con Blocco note di Windows. In questo caso non avrete alcun controllo sul codice, né
l’evidenziazione dei tag. Inoltre, bisognerà prestare particolare attenzione nel salvataggio del file. Infatti, non basta specificare l’estensione .html nel nome del file, ma
dall’elenco a discesa Tipo file della finestra Salva con nome occorre scegliere Tutti i
file (*.), altrimenti verrà aggiunta anche l’estensione .txt.
Figura 1.3 - Salvare un file HTML con Blocco note.
Per vedere il risultato del vostro operato dovete riaprire il file all’interno di un browser.
In genere, per aprire un file locale con un browser occorre scegliere File > Apri o File >
Apri File oppure, per aprirlo nel browser predefinito, basta fare doppio clic su di esso.
Per aprirlo con un altro programma, fate clic col tasto destro del mouse sull’icona del
file e poi scegliete Apri o Apri con, quindi scegliete il programma che volete usare.
24