<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/api.php?action=feedcontributions&amp;user=Ninobi&amp;feedformat=atom</id>
		<title>Slacky.eu - Contributi utente [it]</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/api.php?action=feedcontributions&amp;user=Ninobi&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Speciale:Contributi/Ninobi"/>
		<updated>2013-05-22T10:39:50Z</updated>
		<subtitle>Contributi utente</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2007-01-03T11:04:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Tabelle o non tabelle, questo è il dilemma */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS''' (''Cascade Style Sheets''). In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento ipertestuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, inferiore e sinistro; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, fin qui, tranne per il fatto che, nei menu, ad essere linkata è la home, è praticamente tutto uguale. Poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
=== Le briciole di pane ===&lt;br /&gt;
Altro accorgimento, sacrosanto anche nell'ottica della cosiddetta ''usabilità'', è quello di inserire nelle pagine le ''briciole di pane'' (è un evidente richiamo a Pollicino...), ovvero l'''itinerario'' dei passaggi che abbiamo fatto, con i link a ritroso. Sarebbe qualcosa del genere, insomma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; &amp;lt;a href=&amp;quot;pagina.html&amp;quot;&amp;gt;pagina&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; sezione etc. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
che visualizzerebbe: &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt; &amp;amp;rarr; &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;pagina&amp;lt;/span&amp;gt; &amp;amp;rarr; sezione.&lt;br /&gt;
&lt;br /&gt;
Esistono anche degli script per gestirle. Momentaneamente noi le inseriremo staticamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-30T05:36:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Primi passi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS''' (''Cascade Style Sheets''). In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, inferiore e sinistro; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, fin qui, tranne per il fatto che, nei menu, ad essere linkata è la home, è praticamente tutto uguale. Poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
=== Le briciole di pane ===&lt;br /&gt;
Altro accorgimento, sacrosanto anche nell'ottica della cosiddetta ''usabilità'', è quello di inserire nelle pagine le ''briciole di pane'' (è un evidente richiamo a Pollicino...), ovvero l'''itinerario'' dei passaggi che abbiamo fatto, con i link a ritroso. Sarebbe qualcosa del genere, insomma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; &amp;lt;a href=&amp;quot;pagina.html&amp;quot;&amp;gt;pagina&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; sezione etc. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
che visualizzerebbe: &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt; &amp;amp;rarr; &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;pagina&amp;lt;/span&amp;gt; &amp;amp;rarr; sezione.&lt;br /&gt;
&lt;br /&gt;
Esistono anche degli script per gestirle. Momentaneamente noi le inseriremo staticamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-29T14:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Altezza dei blocchi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, inferiore e sinistro; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, fin qui, tranne per il fatto che, nei menu, ad essere linkata è la home, è praticamente tutto uguale. Poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
=== Le briciole di pane ===&lt;br /&gt;
Altro accorgimento, sacrosanto anche nell'ottica della cosiddetta ''usabilità'', è quello di inserire nelle pagine le ''briciole di pane'' (è un evidente richiamo a Pollicino...), ovvero l'''itinerario'' dei passaggi che abbiamo fatto, con i link a ritroso. Sarebbe qualcosa del genere, insomma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; &amp;lt;a href=&amp;quot;pagina.html&amp;quot;&amp;gt;pagina&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; sezione etc. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
che visualizzerebbe: &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt; &amp;amp;rarr; &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;pagina&amp;lt;/span&amp;gt; &amp;amp;rarr; sezione.&lt;br /&gt;
&lt;br /&gt;
Esistono anche degli script per gestirle. Momentaneamente noi le inseriremo staticamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-29T14:29:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Pagina 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, fin qui, tranne per il fatto che, nei menu, ad essere linkata è la home, è praticamente tutto uguale. Poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
=== Le briciole di pane ===&lt;br /&gt;
Altro accorgimento, sacrosanto anche nell'ottica della cosiddetta ''usabilità'', è quello di inserire nelle pagine le ''briciole di pane'' (è un evidente richiamo a Pollicino...), ovvero l'''itinerario'' dei passaggi che abbiamo fatto, con i link a ritroso. Sarebbe qualcosa del genere, insomma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; &amp;lt;a href=&amp;quot;pagina.html&amp;quot;&amp;gt;pagina&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; sezione etc. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
che visualizzerebbe: &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt; &amp;amp;rarr; &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;pagina&amp;lt;/span&amp;gt; &amp;amp;rarr; sezione.&lt;br /&gt;
&lt;br /&gt;
Esistono anche degli script per gestirle. Momentaneamente noi le inseriremo staticamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-29T06:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Pop up e nuove finestre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
=== Le briciole di pane ===&lt;br /&gt;
Altro accorgimento, sacrosanto anche nell'ottica della cosiddetta ''usabilità'', è quello di inserire nelle pagine le ''briciole di pane'' (è un evidente richiamo a Pollicino...), ovvero l'''itinerario'' dei passaggi che abbiamo fatto, con i link a ritroso. Sarebbe qualcosa del genere, insomma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; &amp;lt;a href=&amp;quot;pagina.html&amp;quot;&amp;gt;pagina&amp;lt;/a&amp;gt; &amp;amp;amp;rarr; sezione etc. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
che visualizzerebbe: &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt; &amp;amp;rarr; &amp;lt;span style=&amp;quot;font-weight:bold;color:#00f&amp;quot;&amp;gt;pagina&amp;lt;/span&amp;gt; &amp;amp;rarr; sezione.&lt;br /&gt;
&lt;br /&gt;
Esistono anche degli script per gestirle. Momentaneamente noi le inseriremo staticamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T06:23:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Validare l'XHTML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url (se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T06:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Pagina 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quello &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url 8se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T06:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Pagina 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;altrostile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quel &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url 8se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T06:16:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Pagina 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;st-provv.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quel &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url 8se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T06:02:18Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Immagini */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri: ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;st-provv.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quel &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url 8se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T05:59:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Il float */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#celladestra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#cellasinistra&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mentre, dopo &amp;lt;code&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Che, qualora non si fosse capito, serve ad ''allineare'' il layout dopo dei blocchi con ''float''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Notato l'accorpamento dell classi di stile (&amp;lt;code&amp;gt;class=&amp;quot;floatleft imgsinistra&amp;quot;&amp;lt;/code&amp;gt;)? Coi i CSS, è conveniente adottare la ''modularità'' e l'''ereditarietà'' dei parametri (sono termini miei, ma credo rendano l'idea): ad esempio, possiamo impostare una caratteristica generale a livello di tag (il &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; per esempio) e caratteristiche particolari a livello di classe (che poi si possono accorpare, come in questo caso); infine, i casi unici si definiscono a livello di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
Salviamo tutto e vediamo che succede.&lt;br /&gt;
&lt;br /&gt;
Uhmm..., l'immagine è stata pensata per uno sfondo nero e, quindi, o cambiamo immagine o cambiamo sfondo. Optiamo per lo sfondo...&lt;br /&gt;
&lt;br /&gt;
=== Miglioriamo lo stile ===&lt;br /&gt;
Nel foglio di stile, reinseriamo l'''id'' &amp;lt;code&amp;gt;#testatina&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;background:#000&amp;lt;/code&amp;gt;. Ma così i titoli non si vedrebbero e, allora, impostiamo lo stile per &amp;lt;code&amp;gt;h1&amp;lt;/code&amp;gt; e cambiamo quello di &amp;lt;code&amp;gt;h3&amp;lt;/code&amp;gt;. Il foglio di stile va comunque sistemato aggiungendo o modificando alcuni parametri. Questo è il risultato complessivo, che salveremo come &amp;lt;code&amp;gt;stile4.css&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aaa; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h1 {line-height:2em; color:#eee; font-size:150%; margin:0 6px; padding:0}&lt;br /&gt;
h3 {line-height:2em; color:#aaf; margin:0; padding:0 6px}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0; line-height:1.2em}&lt;br /&gt;
p {margin:6px; padding:0}&lt;br /&gt;
img {border:0; margin:0; padding:0}&lt;br /&gt;
/*----------------------- CLASSI -----------------------*/&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
/*------------------------- ID -------------------------*/&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#testatina {background:#000}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
#piede {border-top:1px solid #7af; text-align:center; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Ho inserito i divisori in commento solo per maggiore chiarezza. D'ora in poi, non riporterò sempre l'intero foglio, ma vi inviterò ad inserire righe nell'una o l'altra sezione.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un pie' di pagina ===&lt;br /&gt;
&lt;br /&gt;
Subito al di sotto dell'ultimo &amp;lt;code&amp;gt;p class=&amp;quot;clearer&amp;quot;&amp;lt;/code&amp;gt;, inseriamo questa parte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
          &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altezza dei blocchi ===&lt;br /&gt;
&lt;br /&gt;
Una cosa che salta agli occhi, rispetto alla tabella, è che i '''div''' delle tre colonne non sono alti uguali (lo si nota dal bordo sinistro della colonna centrale). L'inconveniente può essere superato impostando un'altezza minima.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo nel CSS la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; (per pulizia, mettiamola nella sezione delle classi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.colonne {min-height:400px; height:auto !important; height:400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Normalmente sarebbe bastato il parametro &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; (coi browser degni di questo nome), ma esiste un browser ben diffuso che certe cose non le capisce e necessita di informazioni diverse: il suo nome è Internet Explorer. E allora, &amp;lt;code&amp;gt;min-height&amp;lt;/code&amp;gt; serve per i browser seri, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; per IE. Ma &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;, per un browser serio, imposta una dimensione fissa (mentre noi vogliamo impostarne una ''minima'') e allora si interpone quell'&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; con flag &amp;lt;code&amp;gt;!important&amp;lt;/code&amp;gt;, che esclude il successivo e che IE, parimenti, non capisce.&amp;lt;br /&amp;gt;&lt;br /&gt;
La compatibilità ''cross-browser'' è uno dei punti più spinosi per un web-builder e le maggiori difficoltà nascono proprio per le deficienze di IE, specialmente per il mancato supporto per i CSS2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un altro problema è quello, accennato, della centratura del layout: la soluzione normale è quella del &amp;lt;code&amp;gt;margin:0 auto&amp;lt;/code&amp;gt;, impostato al livello del blocco (o della tabella) che si deve centrare (ricordiamoci che &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; può avere o 4 o 2 valori; se sono 4, si riferiscono rispettivamente, ai margini superiore, destro, sinistro e inferiore; se sono 2, si riferiscono, a coppia, ai margini verticali e orizzontali). IE, come detto, non riconosce il valore &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;, quindi bisogna dichiarare, a livello superiore (nel nostro caso, il &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;), un &amp;lt;code&amp;gt;text-align:center&amp;lt;/code&amp;gt; (che non sarebbe normale, essendo un parametro per il testo).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un altro accorgimento opportuno, quando si ha a che fare con blocchi &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;, è quello di impostare il parametro &amp;lt;code&amp;gt;line-height&amp;lt;/code&amp;gt; (l'interlinea del testo, più o meno): altrimenti, col solito IE, si corre il rischio di assistere a misteriose sparizioni di porzioni di testo!&lt;br /&gt;
&amp;lt;br /&amp;gt;Sensibili differenze di resa tra un browser e l'altro, sono anche spesso dovute al &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt; dei blocchi (il padding è la distanza del testo dai bordi del blocco): la cosa migliore è impostarlo a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; e definire la distanza col &amp;lt;code&amp;gt;margin&amp;lt;/code&amp;gt; annidando i paragrafi (ad esempio, dentro un &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;padding:0&amp;lt;/code&amp;gt;, posizioniamo un &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;, con &amp;lt;code&amp;gt;margin:6px&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;br /&amp;gt;Come avrete notato, inoltre, in merito alle dimensioni del testo, ho utilizzato gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, come unità di misura a livello base e le percentuali per le altre chiamate: lo scopo, anche in questo caso, è di venire incontro alle difficoltà di IE, con particolare riferimento al ridimensionamento del testo (fondamentale per l'accessibilità).&lt;br /&gt;
&amp;lt;br /&amp;gt;Un problema irrisolto, infine, riguarda l'incapacità di IE di visualizzare la trasparenza delle immagini '''.png''', costringendo i poveri sviluppatori a dover ripiegare sulle .gif.&lt;br /&gt;
Speriamo almeno che qualcuno di questi problemi sia risolto con l'IE 7...&amp;lt;/div&amp;gt;&lt;br /&gt;
Nella pagina, aggiungiamo la classe &amp;lt;code&amp;gt;.colonne&amp;lt;/code&amp;gt; alle tre colonne, appunto, ovvero...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne&amp;quot; id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo un altro menu ===&lt;br /&gt;
La nostra pagina ha già un menu nella colonna sinistra, ma se noi volessimo la classica barra?&lt;br /&gt;
&lt;br /&gt;
Innanzitutto una premessa: molte delle barre, che vediamo nel corso delle nostre navigazioni, sono dei menu ''rollover'' in '''javascript''' (quelle, per intenderci, che fanno aprire dei sottomenu quando ci si posiziona sopra col puntatore). La maggior parte di queste barre (se non tutte) sono ''deprecate'' secondo i dettami dell'usabilità e dell'accessibilità e, quindi, personalmente ne sconsiglio l'uso, come sconsiglio il ricorso, se non per effettive necessità, alle tecnologie ''lato-client''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Permettetemi un'altra breve postilla, stavolta sulla tecnologia lato-client.&amp;lt;br /&amp;gt;&lt;br /&gt;
Un web-builder dovrebbe avere la padronanza completa delle pagine che ha costruito e sapere, quindi, in anticipo, cos'è che vedrà un visitatore. Nel momento in cui ricorre a tecnologia lato-client (''javascript'', ''applet'' e compagnia bella), questa certezza non ce l'ha più, per la semplici ragione che il visitatore potrebbe non essere in grado di visualizzare correttamente le pagine (considerate l'eventualità che il javascript sia disattivato nelle impostazioni del browser o che il visitatore non sia o non si senta in grado di installare un &amp;lt;code&amp;gt;plug-in&amp;lt;/code&amp;gt;). Considerando il fatto che, nella maggior parte dei casi, si può rinunciare a tale tipo di tecnologia, che motivo c'è di abusarne?&amp;lt;br /&amp;gt;&lt;br /&gt;
E se proprio non possiamo fare a meno di qualche applet, di qualche animazione in flash, ricordiamoci almeno di inserirla secondo i canoni dell'xhtml, utilizzando correttamente, pertanto, il tag &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; (per cui rimando alle risorse sull'html citate [[#Collegamenti esterni|sotto]]).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Nel foglio di stile aggiungiamo, fra i tag...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a {text-decoration:none; font-weight:bold; font-size:95%}&lt;br /&gt;
/* i link sottolineati non li posso soffrire... */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... fra gli id...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#barra {background:#900; margin-bottom:1px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...e, tra le classi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.pulsanti {width:120px; background:#009; text-align:center; color:#ffa; &lt;br /&gt;
          font-weight:bold; font-size:85%}&lt;br /&gt;
.pulsanti a {color:#fff; text-decoration:none}&lt;br /&gt;
/* ovvero impostiamo uno stile diverso per i link della classe .pulsanti */&lt;br /&gt;
.pulsanti a:hover {color:#ffa}&lt;br /&gt;
/* ovvero impostiamo un altro colore per il rollover su quei link  */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ora, nella nostra pagina, subito dopo la chiusura del div &amp;lt;code&amp;gt;testatina&amp;lt;/code&amp;gt;, inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;barra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;floatleft pulsanti&amp;quot;&amp;gt;::&amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aggiungiamo dei box ===&lt;br /&gt;
Tra le classi del CSS inseriamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.box {margin:10px 4px; padding:8px; font-size:85%; border:2px groove #fff}&lt;br /&gt;
.boxgiallo {background:#ffa; color:#000;}&lt;br /&gt;
.boxceleste {background:#eef; color:#005;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella pagina, all'interno della colonna sinistra (dopo i link)...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxgiallo&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;&lt;br /&gt;
                Bannerino&amp;lt;br/&amp;gt;o sondaggio&amp;lt;br /&amp;gt;&lt;br /&gt;
                o amenit&amp;amp;amp;agrave;&amp;lt;br /&amp;gt;varie&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella colonna centrale, dopo il paragrafo testo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;div class=&amp;quot;box boxceleste&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
              &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vediamo i risultati ===&lt;br /&gt;
[[immagine:Xhtml-index.jpg|thumbnail|La nostra index]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; e riapriamo la pagina. Il risultato lo vediamo a destra: andiamo un po' meglio, no? Certo, lo stile è un argomento estremamente soggettivo...&lt;br /&gt;
&lt;br /&gt;
Il punto fondamentale è che vediamo praticamente la stessa cosa con tutti i browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aggiungiamo pagine al nostro sito ==&lt;br /&gt;
&lt;br /&gt;
Cominciamo col rinominare la nostra &amp;lt;code&amp;gt;prova4.html&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;. Inoltre, nella seconda voce (&amp;lt;code&amp;gt;pagina1&amp;lt;/code&amp;gt;) della colonna sinistra, modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;pagina1.html&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aggiungiamo questa riga negli id del CSS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#colonnagrande {background:#efe; border-left:2px solid #ddd; max-width:670px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pagina 1 ===&lt;br /&gt;
Ora facciamo qualche modifica al codice della pagina (da notare, tra l'altro, che ora la voce &amp;lt;code&amp;gt;pagina 1&amp;lt;/code&amp;gt; dei menu non è linkata, mentre lo è &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile4.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;floatleft imgsinistra&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;&amp;lt;a id=&amp;quot;top&amp;quot;&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;pagina 1&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: pagina 1&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;colonne floatleft&amp;quot; id=&amp;quot;colonnagrande&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;#blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco1&amp;quot;&amp;gt;blocco 1&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco2&amp;quot;&amp;gt;blocco 2&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco3&amp;quot;&amp;gt;blocco 3&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;h5&amp;gt;&amp;lt;a id=&amp;quot;blocco4&amp;quot;&amp;gt;blocco 4&amp;lt;/a&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&amp;lt;br /&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#top&amp;quot;&amp;gt;top &amp;amp;amp;uarr;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;piede&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
            Il contenuto di questo sito &amp;amp;amp;egrave; liberamente fruibile e non esiste alcuna&lt;br /&gt;
            limitazione d'uso.&amp;lt;br /&amp;gt;Tutti i diritti concessi. &amp;lt;em&amp;gt;Copyleft 2006&amp;lt;/em&amp;gt;&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-pag1.jpg|thumbnail|Pagina 1]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina1.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Praticamente, ci siamo costruiti una specie di ''template'', ovvero un modello da ripetere in tutte le pagine del sito. Di fatto abbiamo cambiato soltanto il codice dalla seconda colonna in poi. Per ora non conosciamo il '''web dinamico''', altrimenti sapremmo che una simile operazione diverrebbe inutile con una tecnologia ''lato server'', sfruttando, in particolare, l'''inclusione'' e la ''modularità''...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apriamo la nostra &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; e, in uno dei due menu, clicchiamo sulla voce &amp;lt;code&amp;gt;Pagina 1&amp;lt;/code&amp;gt;. Vedremo aprirsi la nostra nuova pagina... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le ancore ====&lt;br /&gt;
Nella pagina appena costruita abbiamo visto un tipo particolare di link, quello ''interno'' o ''ancora''. &amp;amp;Egrave; particolarmente utile quando la pagina è molto estesa e vogliamo porre un indice in testa alla stessa.&lt;br /&gt;
&lt;br /&gt;
Praticamente metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...al titolo del paragrafo (precedentemente, al posto di &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; avremmo potuto usare &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, ma, nell'XHTML 1.1, quel parametro non è più ammesso), mentre, alla voce in indice...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#nomeparagrafo&amp;quot;&amp;gt;Nome paragrafo in indice&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; anche buona cosa mettere un'ancora di rimando all'inizio della pagina (nel caso &amp;lt;code&amp;gt;#top&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Pagina 2 ===&lt;br /&gt;
Per la seconda pagina, abbandoneremo temporaneamente il nostro template per sperimentare un layout diverso. Vedremo anche qualche piccola chicca, resa possibile dal ''posizionamento assoluto''.&lt;br /&gt;
&lt;br /&gt;
In essa proveremo a costruire anche un semplice &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt;: per ora sarà solo ''estetico'' purtroppo (un form, per funzionare, ha bisogno di tecnologia ''lato-server''), ma vedremo, comunque, come creare un form secondo i canoni.&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo foglio di stile (è inutile appesantire quell'altro):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {margin:0; padding:0; font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
      font-size:1em; background:#ddd}&lt;br /&gt;
div {margin:0; padding:0}&lt;br /&gt;
p {margin:12px; padding:0;}&lt;br /&gt;
a {color:#fff; text-decoration:none}&lt;br /&gt;
a:hover {color:#ffa}&lt;br /&gt;
.barra {background:#009; margin:0; padding:0; color:#fff; font-weight:bold}&lt;br /&gt;
.titoli {position:absolute; font-weight:bold; font-style:oblique;&lt;br /&gt;
         font-size: 500%;}&lt;br /&gt;
#bar2 {margin: 90px 0 0 0}&lt;br /&gt;
#titolo {top:20px; left:14px; z-index:10; color:#800}&lt;br /&gt;
#rilievo {top:19px; left:13px; z-index:8; color:#fff}&lt;br /&gt;
#ombra {top:25px; left:19px; z-index:6; color:#888}&lt;br /&gt;
#titolo2 {top:20px; left:314px; z-index:10; color:#ddd}&lt;br /&gt;
#rilievo2 {top:19px; left:313px; z-index:8; color:#888}&lt;br /&gt;
#ombra2 {top:21px; left:315px; z-index:6; color:#fff}&lt;br /&gt;
#blocco {margin:10px 0; padding:0; width:780px; background:#fff;&lt;br /&gt;
         border:2px dashed #ddd}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova pagina: incolliamo (per stavolta) tutta l'intestazione dell'altra fino al link dello stile e poi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;st-provv.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;barra&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;index.html&amp;quot;&amp;gt;torna alla homepage&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra&amp;quot;&amp;gt;XHTML&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;titolo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;rilievo2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;titoli&amp;quot; id=&amp;quot;ombra2&amp;quot;&amp;gt;1.1&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot; id=&amp;quot;bar2&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;blocco&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
         Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
         incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
         exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
         irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
         pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
         officia deserunt mollit anim id est laborum.&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p class=&amp;quot;barra&amp;quot;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;pagina2.html&amp;lt;/code&amp;gt; e proviamo ad aprila subito: tralasciamo i commenti sulla resa grafica (per ora non ci badiamo tanto), ma cosa vi pare del titolo ''XHTML'' in rilievo e ombreggiato? E dell'''1.1'' addirittura ''incassato''? Molti avrebbero inserito un'immagine per rendere effetti simili; noi abbiamo fatto tutto col semplice testo! Questo è reso possibile dal posizionamento assoluto: abbiamo assegnato ai tre &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; del titolo una posizione assoluta, con una certa distanza da bordo superiore (&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;) e una certa distanza dal bordo sinistro (&amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;); abbiamo anche stabilito la ''terza dimensione'', ovvero il &amp;lt;code&amp;gt;layer&amp;lt;/code&amp;gt; o ''livello'', rispetto al fondo, con quel &amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;In questo caso, abbiamo adottato un layout sinistro a dimensioni fisse. Il posizionamento assoluto, infatti, si rende praticamente inapplicabile con un layout che non abbia una visualizzazione fissa rispetto ai bordi (ad esempio, quello centrato dove la distanza dal bordo sinistro cambia col variare della dimensione della finestra).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;Egrave; anche vero che si potrebbe utilizzare il posizionamento relativo, ma, personalmente ho riscontrato, almeno con le prove che ho fatto, che il risultato non è identico per tutti i browser.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Un form ====&lt;br /&gt;
Come promesso, aggiungeremo ora un form alla nostra pagina.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, aggiungiamo qualche riga al nostro &amp;lt;code&amp;gt;altrostile.css&amp;lt;/code&amp;gt; e salviamolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fieldset {margin:10px}&lt;br /&gt;
label {display:block; margin:6px;}&lt;br /&gt;
legend {font-style:oblique; color:#009}&lt;br /&gt;
.piccolo {font-size:90%}&lt;br /&gt;
.breve {float:left; width:12em;}&lt;br /&gt;
.cl {clear:both}&lt;br /&gt;
.campi {border:2px ridge #568}&lt;br /&gt;
#invio {margin:20px 400px}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nel codice della nostra pagina 2, posizionamoci nel blocco principale, proprio al di sotto del segnaspazio in latino (sotto la chiusura del &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;) e scriviamo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;informazioni principali&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI CAMPI TIPO 'TEXT' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;nome&amp;quot; accesskey=&amp;quot;1&amp;quot;&amp;gt;Nome [1]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;nome&amp;quot; id=&amp;quot;nome&amp;quot; tabindex=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;cognome&amp;quot; accesskey=&amp;quot;2&amp;quot;&amp;gt;Cognome [2]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;cognome&amp;quot; id=&amp;quot;cognome&amp;quot; tabindex=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'RADIO' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;sesso&amp;quot;&amp;gt;Sesso [3 4]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; id=&amp;quot;sesso&amp;quot; value=&amp;quot;m&amp;quot; accesskey=&amp;quot;3&amp;quot;&lt;br /&gt;
               checked=&amp;quot;checked&amp;quot; /&amp;gt; m &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;sesso&amp;quot; value=&amp;quot;f&amp;quot; accesskey=&amp;quot;4&amp;quot; /&amp;gt; f&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;username&amp;quot; accesskey=&amp;quot;5&amp;quot;&amp;gt;Username [5]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; id=&amp;quot;username&amp;quot; tabindex=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO TIPO 'PASSWORD' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;password&amp;quot; accesskey=&amp;quot;6&amp;quot;&amp;gt;Password [6]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; tabindex=&amp;quot;6&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;br class=&amp;quot;cl&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;altre informazioni&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI TABELLA DI SELEZIONE --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo breve&amp;quot; for=&amp;quot;impiego&amp;quot; accesskey=&amp;quot;7&amp;quot;&amp;gt;Impiego [7]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;select name=&amp;quot;impiego&amp;quot; id=&amp;quot;impiego&amp;quot; tabindex=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;dipendente&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;pubblico&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;pubblica amministrazione&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;privato&amp;quot;&amp;gt;privato&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;professionista&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;avvocato&amp;quot;&amp;gt;avvocato&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;ingegnere&amp;quot;&amp;gt;ingegnere&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
                &amp;lt;optgroup label=&amp;quot;imprenditore&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;commercio&amp;quot;&amp;gt;commercio&amp;lt;/option&amp;gt;&lt;br /&gt;
                  &amp;lt;option value=&amp;quot;servizi&amp;quot;&amp;gt;servizi&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
             &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPI DI SELEZIONE TIPO 'CHECKBOX' --&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;Interessi - seleziona una o pi&amp;amp;amp;ugrave; opzioni [8 9 a]:&amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;informatica&amp;quot; id=&amp;quot;informatica&amp;quot; accesskey=&amp;quot;8&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;8&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; informatica&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;viaggi&amp;quot; id=&amp;quot;viaggi&amp;quot; accesskey=&amp;quot;9&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;9&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; viaggi&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
             &amp;lt;p class=&amp;quot;piccolo&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;input class=&amp;quot;campi&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;libri&amp;quot; id=&amp;quot;libri&amp;quot; accesskey=&amp;quot;a&amp;quot; &lt;br /&gt;
                tabindex=&amp;quot;10&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; libri&lt;br /&gt;
             &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- ESEMPIO DI CAMPO DI TESTO ESTESO 'TEXTAREA' --&amp;gt;&lt;br /&gt;
             &amp;lt;label class=&amp;quot;piccolo&amp;quot; for=&amp;quot;motivo&amp;quot;&amp;gt;Motivo della registrazione [b]:&amp;lt;/label&amp;gt;&lt;br /&gt;
             &amp;lt;textarea class=&amp;quot;campi&amp;quot; cols=&amp;quot;40&amp;quot; rows=&amp;quot;12&amp;quot; name=&amp;quot;motivo&amp;quot; id=&amp;quot;motivo&amp;quot; accesskey=&amp;quot;b&amp;quot; &lt;br /&gt;
              tabindex=&amp;quot;11&amp;quot;&amp;gt;Intendo registrarmi perch&amp;amp;eacute; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;legend&amp;gt;invio&amp;lt;/legend&amp;gt;&lt;br /&gt;
             &amp;lt;p id=&amp;quot;invio&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;invia il modulo&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[immagine:Xhtml-pag2.jpg|thumbnail|Pagina 2]]&lt;br /&gt;
Salviamo il file e apriamo la pagina. Ecco il nostro form! &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Come ho anticipato, il form che abbiamo costruito è solo una ''maschera vuota'': con il parametro &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;, noi stabiliamo la destinazione del form (la stessa pagina, lasciando vuoto), dove, però, ad accogliere ed elaborare i dati ci vorrebbe uno script in '''php''' o '''perl''' o altra tecnologia lato-server.&lt;br /&gt;
&lt;br /&gt;
Bene, il nostro mini-sito è finito, ma ci sarebbero dei ritocchi da fare: li vedremo nella prossima sezione.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessibilità ==&lt;br /&gt;
Con una definizione un po' semplicistica, possiamo dire che l'''accessibilità'' è la disponibilità di una pagina web nei confronti dell'accesso ai suoi contenuti da parte di visitatori non vedenti o ipo-vedenti: tali visitatori, di fatto, dovrebbero essere messi nelle condizioni di interagire con la pagina tanto efficacemente quanto gli utenti ''normo-dotati''.&lt;br /&gt;
&lt;br /&gt;
Finora ne abbiamo parlato poco, ma ciò non significa che non abbiamo fatto niente: uniformandoci agli standard dell'XHTML 1.1, infatti, ci siamo portati avanti nel rispetto dell'accessibilità (l'aderenza agli standard è uno dei presupposti fondamentali).&lt;br /&gt;
&lt;br /&gt;
Ancora, però, abbiamo qualcosa da fare...&lt;br /&gt;
&lt;br /&gt;
=== Le access keys ===&lt;br /&gt;
Le '''access keys''' non sono altro che delle ''scorciatoie da tastiera'' da impostare, ad esempio, per i link fondamentali (come quelli dei menu).&lt;br /&gt;
&lt;br /&gt;
Adottarle è molto semplice: basta inserire, all'interno dei tag &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, il parametro &amp;lt;code&amp;gt;accesskey=&amp;quot;x&amp;quot;&amp;lt;/code&amp;gt;, dove &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; sarà un carattere ''indicativo'' per il link. Ad esempio, metteremo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;index.html&amp;quot; accesskey=&amp;quot;h&amp;quot; title=&amp;quot;pagina principale - accesskey h&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- &amp;lt;a href=&amp;quot;pagina1.html&amp;quot; accesskey=&amp;quot;1&amp;quot; title=&amp;quot;pagina 1 - accesskey 1&amp;quot;&amp;gt;home&amp;lt;/a&amp;gt;&lt;br /&gt;
- ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; serve a visualizzare (o far ''dire'' ad un sintetizzatore vocale) informazioni aggiuntive sul link e, in questo caso, anche la presenza dell'accesskey.&lt;br /&gt;
&lt;br /&gt;
Per accedere ai link, l'utente premerà &amp;lt;code&amp;gt;alt+chiave&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;e invio&amp;lt;/code&amp;gt; su certi browser) o &amp;lt;code&amp;gt;ctrl+chiave&amp;lt;/code&amp;gt; su ''mac-os''.&lt;br /&gt;
&lt;br /&gt;
=== Sequenze di link ===&lt;br /&gt;
Se dobbiamo rispettare l'accessibilità, non potremo far succedere sfilze di link senza alcun carattere divisore (occhio che la regola vale anche se i link sono inseriti in blocchi &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; diversi). Ecco la ragione per cui abbiamo fatto precedere ogni voce di menu da quel &amp;lt;code&amp;gt;::&amp;lt;/code&amp;gt; (avremmo potuto usare &amp;lt;code&amp;gt;&amp;gt; _ - | &amp;lt;/code&amp;gt; etc.).&lt;br /&gt;
&lt;br /&gt;
=== Immagini - testo alternativo e descrizione ===&lt;br /&gt;
Non abuseremo delle immagini, ma, quando comunque le inseriremo, avremo '''sempre''' cura di dare una breve descrizione delle stesse con il parametro &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;. Qualora, poi, l'immagine sia particolarmente rappresentativa, inseriremo una descrizione più approfondita e lo faremo con il parametro &amp;lt;code&amp;gt;longdesc=&amp;quot;nomefile.txt&amp;quot;&amp;lt;/code&amp;gt; (può anche essere una pagina html), che, di fatto, non è altro che un richiamo ad un file esterno, contenente la descrizione. Vicino all'immagine, poi, avremo cura di porre un link allo stesso file, così (ad esempio):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;descrizione.txt&amp;quot; title=&amp;quot;descrizione dell'immagine&amp;quot;&amp;gt;[d]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ordine e sequenzialità ===&lt;br /&gt;
Molto spesso si ha a che fare con siti che letteralmente disorientano il visitatore con una gran confusione di box, link, voci di menu disordinate e disperse per lo schermo... Se un sito del genere può disorientare un vedente, che effetto può avere su di una persona che non ci vede?&lt;br /&gt;
&lt;br /&gt;
Per tale motivo, è opportuno rispettare un certo ordine ed una certa sequenzialità nelle nostre pagine, considerando che ci saranno persone che si dovranno muovere a forza di &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, guidate da quello che un sintetizzatore vocale può leggere.&lt;br /&gt;
&lt;br /&gt;
=== Ridimensionamento ===&lt;br /&gt;
Abbiamo preparato la nostra bella veste grafica e siamo tutti soddisfatti. Ma ci siamo chiesti che effetto avrebbe un ridimensionamento del testo? Abbiamo considerato che quei caratteri piccoli, che, per noi, rendono il sito ''bello fico'', per altri possono significare... ''non leggo una mazza...''?&lt;br /&gt;
&lt;br /&gt;
E allora, teniamo presenti due cose fondamentali:&lt;br /&gt;
# rendiamo i caratteri ridimensionabili anche da parte dei browser poco capaci (IE); è preferibile, pertanto, usare unità di misura che non diano problemi da questo punto di vista (gli &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, per esempio);&lt;br /&gt;
# testiamo la resa grafica del sito con diversi ridimensionamenti; assicuriamoci che la modifica del corpo del carattere non vada a sconvolgere il layout con effetti disastrosi (non solo dal punto di vista estetico).&lt;br /&gt;
&lt;br /&gt;
=== Rispetto della semantica ===&lt;br /&gt;
Se una voce di menu richiama una pagina che parla di ''cinema'', eviteremo di scrivere, per esempio, ''La grande illusione''... Le voci di menu, i titoli, i sottotitoli dovrebbero essere chiari e decisamente rappresentativi dei contenuti cui si riferiscono.&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, se dobbiamo enfatizzare una parte di testo, eviteremo di usare un generico &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt; richiamante una classe di stile: la stessa classe possiamo richiamarla in un tag &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;, così il testo sarà riprodotto enfatizzato dall'eventuale sintetizzatore.&lt;br /&gt;
&lt;br /&gt;
=== Form accessibili ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Un esempio pratico di come dovrebbe essere costruito un form accessibile l'abbiamo visto in [[#Pagina 2|Pagina 2]]. Qui mi limiterò ad alcuni chiarimenti.&amp;lt;/div&amp;gt;&lt;br /&gt;
Non faremo mai mancare il tag &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; (di fatto, un'''etichetta'') ai campi di ''input'' e il parametro &amp;lt;code&amp;gt;tabindex&amp;lt;/code&amp;gt; agli stessi input (per impostare la successione degli spostamenti azionando il &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;). &amp;amp;Egrave; anche opportuno ricorrere, come abbiamo fatto nel menu, alle &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt; per le &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le opzioni in un campo di selezione dovrebbero essere raggruppate per categorie omogenee, per mezzo del tag &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le caselle di selezione &amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;radio&amp;lt;/code&amp;gt; dovrebbero essere sempre seguite, non precedute, dal testo corrispondente e, tra le opzioni, è sempre opportuno che una sia selezionata. Allo stesso modo, nei campi &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt;, dovrebbe già essere visualizzato un breve testo d'esempio.&lt;br /&gt;
&lt;br /&gt;
Eviteremo le tabelle per formattare il form e ricorreremo, invece ai tag &amp;lt;code&amp;gt;fieldset&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; per organizzarlo.&lt;br /&gt;
&lt;br /&gt;
=== Pop up e nuove finestre ===&lt;br /&gt;
Il parametro &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (che permetteva di dirottare un link in una nuova finestra o in una diversa ''frame'') è vietato già dall'XHTML 1.0 Strict. Molti suggeriscono di aggirare l'ostacolo ricorrendo al javascript. Ma, se il nostro scopo è quello di rendere il sito accessibile, non ricorreremo a simili sotterfugi. Niente nuove finestre, quindi: la navigazione deve avvenire tutta nella finestra principale. Se un utente preferisce altrimenti, può aprire una nuova finestra premendo contemporaneamente &amp;lt;code&amp;gt;shift&amp;lt;/code&amp;gt; (o una nuova scheda con &amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;, se il suo browser ne è capace).&lt;br /&gt;
&lt;br /&gt;
Allo stesso modo, eviteremo ''come la peste'' i ''pop-up'' e le menate simili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Mi sono limitato a considerare solo alcuni degli aspetti fondamentali dell'accessibilità. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Validazione ==&lt;br /&gt;
Il fatto che abbiamo dichiarato la nostra '''DTD''' (''Document Type Definition'') in testa alla pagina e che ci siamo sforzati di non commettere errori, non significa che la nostra codifica sia effettivamente conforme agli standard. Per esserne sicuri, dovremo sottoporci al rigido esame dei validatori del '''W3C''' (''World Wide Web Consortium'') e non solo...&lt;br /&gt;
&lt;br /&gt;
=== Validare l'XHTML ===&lt;br /&gt;
Per validare l'XHTML dovremo collegarci a...&lt;br /&gt;
&lt;br /&gt;
http://validator.w3.org/&lt;br /&gt;
&lt;br /&gt;
... dove potremo optare tra l'indicazione dell'url 8se la nostra pagina è on-line), l'input diretto del codice e il caricamento della pagina da locale (quest'ultima opzione, però, non è possibile se la nostra pagina contiene ''scripting lato-server'').&lt;br /&gt;
&lt;br /&gt;
=== Validare i CSS ===&lt;br /&gt;
Per i CSS...&lt;br /&gt;
&lt;br /&gt;
http://jigsaw.w3.org/css-validator/&lt;br /&gt;
&lt;br /&gt;
... dove troviamo le stesse opzioni di prima.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente che il validatore CSS è molto severo (infatti non è raro incorrere in lunghe serie di ''warnings''). Il foglio, tuttavia, se non vengono visualizzati errori, è valido e quei ''warnings'' debbono essere intesi come consigli per migliorare lo stile.&lt;br /&gt;
&lt;br /&gt;
=== Validare l'accessibilità ===&lt;br /&gt;
Qui le cose si fanno più complicate...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Egrave; da tener presente, innanzitutto, che vi sono tre livelli di accessibilità, secondo gli standard '''WAI''' (''Web Accessibility Initiative''): '''A''', '''AA''' e '''AAA''' (l'ultimo è il più completo). Il W3C, in questo caso, si affida alla nostra discrezionalità e raccomanda di validare preventivamente l'XHTML ed i CSS. Esistono, tuttavia, altri strumenti che offrono una certa validazione. Eccone alcuni:&lt;br /&gt;
&lt;br /&gt;
* http://webxact.watchfire.com/&lt;br /&gt;
* http://www.contentquality.com/&lt;br /&gt;
* http://wave.webaim.org/index.jsp&lt;br /&gt;
&lt;br /&gt;
La validazione non è immediata come negli altri casi e i responsi di tali strumenti vanno studiati un po'. Unendo le risorse, comunque, si può giungere ad una conclusione attendibile.&lt;br /&gt;
&lt;br /&gt;
=== Congratulazioni ===&lt;br /&gt;
Nel momento in cui i vari validatori ci porgono le loro ''congratulazioni'' per aver elaborato del codice conforme, potremo optare o meno per l'inserimento dei famosi, prestigiosi bollini di validità nella nostra home-page. Non limitiamo la cosa ad un banale sfoggio: se abbiamo fatto le cose per bene, pavoneggiarsi un po' non è un crimine; ma lo scopo primario di tale ostentazione dovrebbe essere quello di ''dare l'esempio'', di stimolare l'''emulazione'' negli altri.&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Per la cronaca, le pagine che abbiamo costruito sono risultate perfettamente conformi alla validazione dell'XHTML 1.1 e dei CSS. ''Presumibilmente'', saranno anche conformi agli standard WAI AAA per l'accessibilità.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusioni ==&lt;br /&gt;
Quello che abbiamo fatto si propone di essere solo un ''input'' e, ripetendo parte della premessa, ribadisco che il seguito è affidato al vostro entusiasmo e alla vostra disponibilità ad approfondire. Uno dei prossimi passi, per esempio, potrebbe essere costituito da un bel tuffo nel '''web dinamico''', con particolare riferimento alla coppia ''open-source'' per eccellenza: '''php-mysql'''...&lt;br /&gt;
&lt;br /&gt;
Vorrei, tuttavia, che considerassimo anche ciò che '''non''' abbiamo fatto:&lt;br /&gt;
# non abbiamo costruito il classico paginone con il nostro programma di grafica preferito;&lt;br /&gt;
# non lo abbiamo dato in pasto allo stesso programma o ad altro software per ''affettarlo'' in tante porzioni di immagine (magari &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;), da sistemare in tante tabelle, magari annidate, con le spaziature forzate a suon di immagini di un pixel, mettendo immagini anche per rendere sfondi uniformi o, addirittura, parti di testo;&lt;br /&gt;
# non abbiamo elaborato ulteriormente il tutto con un programma di ''web-authoring'', curando la formattazione in modalità grafica, che si sarebbe poi tradotta, però, in CSS in linea ''tag per tag'' o, peggio, in obsoleti parametri html.&lt;br /&gt;
Eppure, tutto questo costituisce ''routine'' per molti cosiddetti ''professionisti'' del web... Io non escludo che producano pagine estremamente curate dal punto di vista estetico. Nulla da dire contro la cura: anche l'occhio vuole la sua parte e, in fondo, il web è un'arte a 360 gradi! Ma proviamo a verificare il peso delle pagine, a riscontrare i tempi di caricamento (c'è ancora tanta gente che viaggia a 56 Kb...), senza parlare di usabilità, accessibilità... La bravura di uno sviluppatore si vede anche nel saper sezionare la grafica, nel saper elaborare il codice a mano, nel saper ricorrere ai CSS quando si tratta di rendere sfondi uniformi o barre o box...&lt;br /&gt;
&lt;br /&gt;
Se vogliamo ritenerci veri sviluppatori, c'è poco da dire: dobbiamo tendere ad un web...&lt;br /&gt;
* leggero;&lt;br /&gt;
* razionale;&lt;br /&gt;
* usabile;&lt;br /&gt;
* accessibile.&lt;br /&gt;
Se poi è anche bello..., ben venga!&lt;br /&gt;
&lt;br /&gt;
Questo è quanto.&lt;br /&gt;
&lt;br /&gt;
== Collegamenti esterni ==&lt;br /&gt;
Questa è una serie limitata di collegamenti. Con un po' di buona volontà e grazie ai motori di ricerca, la lista si potrebbe ulterioriormente incrementare...&lt;br /&gt;
&lt;br /&gt;
L'ordine dei link è meramente casuale.&lt;br /&gt;
&lt;br /&gt;
=== HTML - XHTML ===&lt;br /&gt;
* http://xhtml.html.it/&lt;br /&gt;
* http://www.w3.org/TR/html4/&lt;br /&gt;
* http://weblink.altervista.org/&lt;br /&gt;
* http://www.htmlhelp.com/&lt;br /&gt;
* http://www.aspide.it/manuale/&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
* http://www.w3.org/Style/CSS/learning&lt;br /&gt;
* http://www.w3schools.com/css/&lt;br /&gt;
* http://css.html.it/guide/leggi/2/guida-css-di-base/&lt;br /&gt;
* http://www.web-link.it/css/css.htm&lt;br /&gt;
* http://www.risorse.net/css/&lt;br /&gt;
&lt;br /&gt;
=== Accessibilità ===&lt;br /&gt;
* http://www.francocarcillo.it/dive/index.html&lt;br /&gt;
* http://www.webxtutti.it/&lt;br /&gt;
* http://www.diodati.org/&lt;br /&gt;
* http://www.webaccessibile.org/&lt;br /&gt;
* http://www.pubbliaccesso.gov.it/index.htm&lt;br /&gt;
* http://www.usabile.it/&lt;br /&gt;
* http://www.accessifyforum.com/viewtopic.php?p=8123&lt;br /&gt;
L'ultimo link è particolarmente utile, in quanto non è altro che un ulteriore ricco elenco di risorse sull'accessibilità (in inglese).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Autore:[[utente:Ninobi | ninobi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
Sul web: http://ninobi.altervista.org.&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:aschenaz@gmail.com aschenaz@gmail.com]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;[[#top|&amp;amp;uarr; indice]]&lt;/div&gt;</summary>
		<author><name>Ninobi</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero</id>
		<title>XHTML 1.1, CSS e Accessibilità da zero</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/XHTML_1.1,_CSS_e_Accessibilit%C3%A0%C2%A0da_zero"/>
				<updated>2006-09-28T05:18:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ninobi: /* Primi passi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Ufficio e Web]]&lt;br /&gt;
Lo scopo di questa guida è di permettere a chi non ha familiarità con il '''web-building''' ''lato source'' di cominciare dal meglio, cioè dallo standard più avanzato della codifica: l''''XHTML 1.1'''. Saranno evitati, perciò, i passaggi intermedi e si ci abituerà da subito anche all'utilizzo dei '''CSS''', nel rispetto dell''''accessibilità'''.&lt;br /&gt;
&lt;br /&gt;
== Premessa ==&lt;br /&gt;
Una caratteristica di questa guida è l'estrema ''stringatezza'' (poche chiacchiere e molti fatti), in coerenza all'ideale connotazione di una pagina web: efficace, ma quanto più leggera possibile. Di fatto impareremo a realizzare un semplicissimo sito, sperando che il resto rimanga affidato alla vostra voglia di approfondire.&lt;br /&gt;
&lt;br /&gt;
== Primi passi ==&lt;br /&gt;
Apriamo un editor testuale (il più semplice possibile, per ora) e digitiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Abituiamoci da subito ad aprire e chiudere i '''tag''' (è una buona norma per non dimenticarli aperti).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posizionamoci al centro dei due tag e premiamo due volte ''invio'', per ottenere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Procedendo allo stesso modo, continuiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notate come la riga del tag &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; sia indentata rispetto a &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;. Anche questa è una buona abitudine: adottate una corretta indentazione per rendere il codice ordinato e leggibile.&lt;br /&gt;
&lt;br /&gt;
Andiamo avanti...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:right&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;text-align:center&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1.jpg|thumbnail|La prima pagina]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#ffb; border:1px solid #aaa; padding:6px&amp;quot;&amp;gt;Non lasciatevi vincere dalla tentazione del classico ''copia-incolla'' con le parti in codice di questa guida: rischiereste di perdere il senso di cosa state facendo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bene, salviamo il file come &amp;lt;code&amp;gt;prova1.html&amp;lt;/code&amp;gt; (per esempio) e apriamolo. Partirà il nostro browser di default e visualizzerà la pagina che vediamo a destra.&lt;br /&gt;
&lt;br /&gt;
Proviamo una cosa: nella finestra del browser che visualizza la nostra pagine, clicchiamo col tasto destro e apriamo il sorgente... Visto? E' quello che abbiamo scritto noi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alcuni chiarimenti:&lt;br /&gt;
&lt;br /&gt;
; head : ospita le informazioni di intestazione (il titolo, i ''meta-tag'', i ''link'' a file esterni, etc.).&lt;br /&gt;
&lt;br /&gt;
; body : è il corpo della pagina.&lt;br /&gt;
&lt;br /&gt;
; h1, h2 ... : sono blocchi di intestazione (servono per i titoli...).&lt;br /&gt;
&lt;br /&gt;
; &amp;amp;amp;Egrave; etc. : sono le cosiddette &amp;lt;code&amp;gt;htmlentities&amp;lt;/code&amp;gt;, che servono a visualizzare correttamente i caratteri speciali (in rete sono disponibili maggiori informazioni - ad esempio [http://www.fauser.edu/fau/html_htm/html4b.htm qui]).&lt;br /&gt;
&lt;br /&gt;
; hr : visualizza una linea.&lt;br /&gt;
&lt;br /&gt;
; p : è un blocco di testo (paragrafo);&lt;br /&gt;
&lt;br /&gt;
; style : serve a definire lo stile del tag. Ecco il nostro primo incontro coi '''CSS'''. In questo caso abbiamo a che fare con css ''in-linea'', ma esistono alternative (lo vedremo...).&lt;br /&gt;
&lt;br /&gt;
; br : serve ad andare a capo nel corso dello stesso blocco.&lt;br /&gt;
&lt;br /&gt;
; em : un tag per rendere ''enfatizzato'' il testo racchiuso (corsivo, in pratica); per il grassetto, useremo '''strong'''; i vecchi tag, ''i'', ''b'' e ''u'' non sono più ammessi (per il sottolineato, si ricorre allo stile).&lt;br /&gt;
&lt;br /&gt;
== Dichiaramoci ==&lt;br /&gt;
Bene, il codice è corretto, ma la nostra pagina ancora non è XHTML.&lt;br /&gt;
&lt;br /&gt;
Per rimediare, al posto del tag di apertura &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; mettiamo questo blocco...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
E, nella &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, aggiungiamo...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Risalviamo la pagina e riapriamola: è uguale a prima, ma ora la nostra pagina è ''dichiaratamente'' XHTML 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Rispetto all'HTML non è che cambi molto: semplicemente la codifica dev'essere molto più rigorosa, mancano molti dei parametri dei tag (specialmente quelli relativi alla formattazione, che viene totalmente affidata ai CSS) e si devono seguire delle semplici regole (ma vedremo tutto strada facendo).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facciamo conoscenza con i CSS ==&lt;br /&gt;
Apriamo un nuovo documento col nostro editor e cominciamo subito a scrivere...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffffaa;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fermiamoci un attimo: quel &amp;lt;code&amp;gt;#ffffaa&amp;lt;/code&amp;gt; è la notazione esadecimale di un colore; le tre coppie di caratteri indicano la saturazione dei tre colori base del formato RGB (red, green, blue); il minimo è &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, il massimo è &amp;lt;code&amp;gt;ff&amp;lt;/code&amp;gt; (i due estremi sono &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; - il nero - e &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; - il bianco). Per approfondire l'argomento questa, però, non è la sede più adatta (dobbiamo essere sintetici, no?). Le uniche cose che vorrei precisare sono:&lt;br /&gt;
* che è preferibile usare colori della serie ''web-safe'' (quelli in cui i caratteri di ogni coppia sono uguali, come in questo caso);&lt;br /&gt;
* che in questi casi si può adottare la notazione ''breve'', ovvero riducendo la coppia ad un solo carattere (nel caso &amp;lt;code&amp;gt;#ffa&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il ricorso alla notazione breve, anche se può sembrare una sciocchezza, è importante per il fatto che, in un foglio di stile ''consistente'', il peso del file si ridurrebbe in maniera sensibile. Non dimentichiamo che uno dei nostri scopi è quello di creare file ''leggeri'' (è per la stessa ragione che è preferibile non andare a capo tra un parametro e l'altro del foglio di stile).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torniamo a noi...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#ffa; color:#567; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Precisazioni:&lt;br /&gt;
;background : il colore di sfondo (si può optare per un'immagine con &amp;lt;code&amp;gt;background-image:url(percorso/nomeimmagine)&amp;lt;/code&amp;gt;).&lt;br /&gt;
;color : il colore del carattere.&lt;br /&gt;
;font-family : una famiglia di font omogenei (bisogna raggruppare i font in base alle tre macro-aree: &amp;lt;code&amp;gt;serif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sans-serif&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;monospace&amp;lt;/code&amp;gt;).&lt;br /&gt;
; il punto all'inizio di un nome : sta ad indicare che si tratta di una ''classe'', ovvero una categoria omogenea con gli stessi attributi (se, invece c'è un &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, sta ad indicare un &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, un identificativo ''univoco'', ovvero che esiste un solo blocco con quelle caratteristiche).&lt;br /&gt;
&lt;br /&gt;
Salviamo il nuovo file come &amp;lt;code&amp;gt;stile.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Adesso, nella nostra &amp;lt;code&amp;gt;prova.html&amp;lt;/code&amp;gt;, tra i tag &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;/head&amp;lt;/code&amp;gt;, inseriamo...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... dicendo, cioè, alla nostra pagina web di andarsi a vedere lo stile memorizzato in quel file. &lt;br /&gt;
&lt;br /&gt;
A questo punto, lo stile inserito all'interno dei singoli tag non serve più. Serve, invece, il richiamo alle &amp;lt;code&amp;gt;classi&amp;lt;/code&amp;gt; css (quelle che nel file cominciano coun un punto: ad esempio &amp;lt;code&amp;gt;.destra&amp;lt;/code&amp;gt;). Quindi, toglieremo &amp;lt;code&amp;gt;style=&amp;quot;text-align:right&amp;quot;&amp;lt;/code&amp;gt;, sostituendo con &amp;lt;code&amp;gt;class=&amp;quot;destra&amp;quot;&amp;lt;/code&amp;gt; e così via...&lt;br /&gt;
&lt;br /&gt;
Avremmo potuto inserire lo stile all'interno della stessa pagina web, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      body {background:#eff; color:#567; font-family:Arial, Helvetica, sans-serif; &lt;br /&gt;
            margin:0; padding:0;}&lt;br /&gt;
      .destra {text-align:right;}&lt;br /&gt;
      .centro {text-align:center;}&lt;br /&gt;
    //--&amp;gt;&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ma la cosa sarebbe stata ''improduttiva'': infatti, un unico foglio di stile esterno ha diversi vantaggi, tra cui il fatto di poter essere usato da infinite pagine; inoltre, eventuali modifiche vanno fatte una volta sola...&lt;br /&gt;
&lt;br /&gt;
Ora il codice della pagina sarà, quindi, così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
        wikislacky.&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo &amp;lt;em&amp;gt;normale&amp;lt;/em&amp;gt; con allineamento a sinistra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;destra&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento a destra.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;centro&amp;quot;&amp;gt;Questo &amp;amp;amp;egrave; un paragrafo con allineamento al centro.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;In questo paragrafo c'&amp;amp;amp;egrave; &amp;lt;br /&amp;gt;un'andata a capo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml1s.jpg|thumbnail|La prima pagina - con stile]]&lt;br /&gt;
Salviamo la pagina con un altro nome: &amp;lt;code&amp;gt;prova1stile.html&amp;lt;/code&amp;gt;, per esempio (non dimentichiamo di salvare anche il foglio di stile che abbiamo modificato). Riapriamo la pagina.&lt;br /&gt;
&lt;br /&gt;
Ecco quello che abbiamo... &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Dunque:&lt;br /&gt;
* è cambiato il colore di sfondo;&lt;br /&gt;
* è cambiato il carattere;&lt;br /&gt;
* è cambiato il colore del sottotitolo.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Acquisendo dimestichezza con i CSS, riusciremo ad ottenere praticamente qualsiasi formattazione.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, non farò molte precisazioni sul CSS. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I layout ==&lt;br /&gt;
Una delle decisioni più ardue che si trova ad affrontare un web-builder è quella della scelta del ''layout'' da adottare, al cospetto del sempre più vario panorama di risoluzioni monitor.&lt;br /&gt;
&lt;br /&gt;
Sinteticamente, credo che le alternative siano principalmente tre:&lt;br /&gt;
* layout ''proporzionale'';&lt;br /&gt;
* layout ''centrato a dimensioni fisse'';&lt;br /&gt;
* layout ''posizionato a sinistra a dimensioni fisse''.&lt;br /&gt;
&lt;br /&gt;
Nel '''proporzionale''', le dimensioni cambiano al cambiare della finestra del browser e, nell'ambito del CSS, vengono espresse in &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;; in quelli a '''dimensioni fisse''', invece, il layout di norma è ampio poco meno degli 800 pixel, che corrispondono alla dimensione orizzontale della minor risoluzione monitor ormai in circolazione; in questi casi, le dimensioni nel CSS vengono, di norma, espresse in &amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt; (ma non per tutto).&lt;br /&gt;
&lt;br /&gt;
Per il nostro sito d'esempio useremo il secondo caso, il layout centrato, ma, in una pagina, anche il terzo, quello spostato a sinistra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Il layout spostato a sinistra, che spesso ritroviamo in molte pagine web (anche autorevoli), a volte non è tanto frutto di una scelta, quanto di un errore nel CSS; per averne conferma dovremmo visualizzarlo sotto Windows e con Internet Explorer: se viene visualizato al centro, quel sito è stato testato ''solo'' con quel browser. Vedremo in seguito come evitare questo errore...&amp;lt;br /&amp;gt;Se fatto per scelta, invece, quel tipo di layout può riservare anche delle soddisfazioni, ma bisogna adottare qualche accorgimento per renderlo esteticamente più gradevole (adozione di sfondi per tutta la pagina, barre proporzionali, etc...).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tabelle o non tabelle, questo è il dilemma ===&lt;br /&gt;
Proviamo con una tabella: cominciamo con lo stile...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {color:#a00}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin: 4px 0 0 0}&lt;br /&gt;
table {width:780px; margin:0 auto; padding:0; border:2px solid #7af; text-align:left; &lt;br /&gt;
    background:#fff}&lt;br /&gt;
td{vertical-align:top}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
#testatina{background:#fff}&lt;br /&gt;
#cellasinistra {width:100px; border-right:2px solid #ddd; font-weight:bold; font-size:95%}&lt;br /&gt;
#celladestra {width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Salviamolo come &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E ora la pagina... Attenzione a modificare il link al foglio di stile (aggiungiamo il 2).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile2.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;table summary=&amp;quot;layout della pagina&amp;quot;&amp;gt;&lt;br /&gt;
    	&amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;3&amp;quot; id=&amp;quot;testatina&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;cellasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td id=&amp;quot;celladestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&amp;lt;/p&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[immagine:Xhtml-t.jpg|thumbnail|La prima pagina - con layout]]&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova2.html&amp;lt;/code&amp;gt; ed apriamola. Ecco il risultato: &amp;amp;rarr;&lt;br /&gt;
&lt;br /&gt;
Bruttina, non c'è che dire. Provvederemo...&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
Alcune precisazioni:&lt;br /&gt;
; table : una tabella nella pagina - il parametro &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; serve a dare una breve descrizione del contenuto della tabella. &amp;amp;Egrave; uno dei ''dictat'' della cosiddetta '''accessibilità''' (ne riparleremo).&lt;br /&gt;
; tr : una nuova riga della tabella.&lt;br /&gt;
; td : una cella nella riga - se c'è il parametro &amp;lt;code&amp;gt;colspan=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, significa che la cella deve raggruppare &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; colonne delle altre righe (ad esempio, la prima raggruppa tre colonne), così come &amp;lt;code&amp;gt;rowspan&amp;lt;/code&amp;gt; funzionerebbe per le righe.&lt;br /&gt;
; a : è uno dei ''tag'' più importanti, in quanto indica un ''collegamento iper testuale'' (il famoso ''link'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;D'ora in poi, come per i CSS, non darò molte altre indicazioni per l'(x)html, altrimenti corriamo il rischio di abbandonare l'intenzionale stringatezza. Maggiori informazioni possono essere ricavate dalle risorse che indico in [[#Collegamenti esterni|Collegamenti esterni]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Il float ===&lt;br /&gt;
&lt;br /&gt;
Bene o male, abbiamo il nostro layout ottenuto con una tabella. Dimentichiamolo!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Le tabelle dovrebbero essere usate esclusivamente allo scopo per cui sono nate e, cioè, per l'esposizione di dati ''tabellari''. Di sicuro non dovrebbero essere usate (e invece se n'è abusato) per la realizzazione di layout. Al nostro scopo, bisogna ricorrere ai CSS e, in particolare, al parametro &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Riprendiamo il nostro &amp;lt;code&amp;gt;stile2.css&amp;lt;/code&amp;gt;, eliminiamo le righe &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt; e modifichiamo il resto. Questo è il risultato finale (attenzione alle modifiche dei valori pre-esistenti):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {background:#aef; color:#345; font-family:Arial, Helvetica, sans-serif; margin:0; padding:0;&lt;br /&gt;
      text-align:center; font-size:1em}&lt;br /&gt;
h3 {line-height:2em; color:#a00; margin:0; padding:0}&lt;br /&gt;
h4 {color:#ffa; text-align:center; background:#aaa; margin:4px 0 0 0; padding:0}&lt;br /&gt;
div {padding:0}&lt;br /&gt;
p {margin:10px 6px; padding:0}&lt;br /&gt;
.destra {text-align:right;}&lt;br /&gt;
.centro {text-align:center;}&lt;br /&gt;
.clearer {clear:both; height:1px; overflow:hidden; margin:-1px;}&lt;br /&gt;
.floatleft {float:left; margin:0;}&lt;br /&gt;
#layout {width:780px; margin:0 auto; border:2px solid #7af; text-align:left; background:#fff}&lt;br /&gt;
#colonnacentro {width:540px; border-left:2px solid #ddd;}&lt;br /&gt;
#colonnasinistra {width:100px; font-weight:bold; font-size:95%}&lt;br /&gt;
#colonnadestra {float:right; width:120px; background:#eee; font-size:90%}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;stile3.css&amp;lt;/code&amp;gt; (è preferibile lasciare i vecchi file per controllare eventuali errori a ritroso...).&lt;br /&gt;
&lt;br /&gt;
Riprendiamo la nostra pagina e modifichiamo così:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE&lt;br /&gt;
html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;La mia prima pagina XHTML&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;stile3.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html;charset=iso-8859-15&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
             &amp;lt;h1&amp;gt;Benvenuti nella mia prima pagina XHTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
             &amp;lt;h3&amp;gt;&lt;br /&gt;
               &amp;amp;amp;Egrave; un esercizio fatto seguendo l'&amp;lt;em&amp;gt;how-to&amp;lt;/em&amp;gt; di &lt;br /&gt;
               wikislacky.&lt;br /&gt;
             &amp;lt;/h3&amp;gt;&lt;br /&gt;
             &amp;lt;h4&amp;gt;home&amp;lt;/h4&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnasinistra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: home&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 1&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;:: &amp;lt;a href=&amp;quot;&amp;quot;&amp;gt;pagina 2&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;floatleft&amp;quot; id=&amp;quot;colonnacentro&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor&lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute &lt;br /&gt;
               irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla &lt;br /&gt;
               pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui &lt;br /&gt;
               officia deserunt mollit anim id est laborum&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;colonnadestra&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p&amp;gt;&lt;br /&gt;
               Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor &lt;br /&gt;
               incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud &lt;br /&gt;
               exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;br /&gt;
            &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;p class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo come &amp;lt;code&amp;gt;prova3.html&amp;lt;/code&amp;gt; ed apriamola. Come possiamo vedere, le differenze, rispetto a prima, sono minime (e, lavorando un po' coi CSS, potremmo toglierle; ma per ora, può andare così). Abbiamo eliminato la tabella, ottenendo lo stesso risultato, con almeno due vantaggi: abbiamo alleggerito la pagina e siamo rimasti coerenti al contenuto semantico della pagina.&lt;br /&gt;
&lt;br /&gt;
== Arricchiamo la pagina ==&lt;br /&gt;
Una pagina web così, però, è sinceramente improponibile. Vediamo di migliorarla un po'...&lt;br /&gt;
=== Immagini ===&lt;br /&gt;
Io non sono un fan delle immagini sul web (a meno che non servano effettivamente), ma almeno un logo lo vogliamo mettere?&lt;br /&gt;
Prendiamone uno in prestito: il bel logo nella home di Slacky. Clicchiamoci sopra col destro e salviamolo nella stessa directory delle nostre prove.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;font-size:90%;padding:6px;border:1px solid #aaa&amp;quot;&amp;gt;Veramente sarebbe preferibile organizzare il proprio sito con delle sotto-directory: ''immagini'', ''file'', ''documenti''... Ma ognuno può regolarsi come meglio crede.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo la seguenti righe nel foglio di stile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img {border:0}&lt;br /&gt;
.imgsinistra {margin:4px 6px 0 0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E la seguente riga nella pagina, esattamente all'inizio del div del titolo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              &amp;lt;img src=&amp;quot;logo.gif&amp;quot; alt=&amp;quot;il logo della nostra pagina&amp;quot; class=&amp;quot;