html512
Corso html 5, dodicesima lezione.
Roberto Abutzu su uiciechi.it, 2013-09.

Dodicesima parte: il linguaggio Css, i link e le pseudo-classi.

**********

Il concetto delle pseudo classi.

Questa notazione è più complessa di quel che sembra, perché varia a seconda dello stato 
dell'elemento stesso. In questo caso, andremo a parlare delle pseudo classi dei selettori. Infatti, 
si intende una modifica dello stile, non per un singolo elemento, ma per lo stato che questo 
elemento può assumere e anche per le sue variazioni.

Applichiamo questa teoria direttamente ai link, semplificandone così la comprensione. Un link, 
oltre al suo colore assegnato dal programmatore, può variare a seconda che sia stato già visitato, 
che il puntatore del mouse sia posizionato sopra di esso, che ci sia il focus della tastiera, oltre 
a variare anche nel momento in cui viene attivato.

Quindi, in pratica il colore di un link varia a seconda dei suddetti stati ed è il programmatore 
che ne decide i vari colori, utilizzando le pseudo-classi.

Per una buona, pratica e fluida navigazione in una pagina web, è necessario che i link già visitati 
siano contrassegnati, quindi, a tale scopo ne viene cambiato il colore.

Nota bene: si fa presente che questi dati di formattazione degli elementi di una pagina web, 
quindi, anche i dati che contrassegnano il link già visitato, vengono salvati nella memoria dei 
file temporanei del browser. Quindi, se si pulisce la cronologia e i file temporanei del browser, 
questi dati vengono persi, quindi, dopo una pulizia del browser, è come se la pagina web la 
visitassimo per la prima volta.

Per iniziare il discorso e vedere quali sono i codici da inserire nel file CSS, cominciamo con 
l'inserire il codice che assegnerà i vari colori ai link a seconda dello stato in cui si trovano. 
Poi, di seguito, ne spiegheremo il significato. Apriamo il nostro file style.css e portiamoci in 
fondo alla pagina con control più fine.

Andiamo a capo premendo invio e inseriamo questo codice:

`` a:link {color: #0000FF; }``

`` a:visited {color: #FF0000; }``

`` a:focus {color: #00FF00; }``

`` a:hover {color: #00FF00; }``

`` a:active {color:#FF00FF; }``

Ecco cosa abbiamo inserito e cosa significa:

•Come si evince dal codice, all'interno delle parentesi graffe, troviamo il codice dei colori 
assegnati.
•Prima delle parentesi graffe, per ogni codice, il selettore che viene spiegato di seguito.
•a: link non visitato e senza nessun altro stato attivo. Gli è stato assegnato il colore blu 
(#0000FF).
•a:visited: Link già visitato dal browser. Gli è stato assegnato il colore Rosso (#FF0000).
•a:focus: Questo selettore indica il focus della tastiera, quello che spostiamo con il tasto Tab. 
Gli è stato assegnato il colore verde (#00FF00).
•a:hover: Questo selettore indica quando il puntatore del mouse si posiziona sopra il link. Gli è 
stato assegnato ugualmente il colore verde (#00FF00).
•a:active: Indica lo stato di attivazione del link quando viene attivato dal mouse per aprire la 
nuova pagina. Gli è stato assegnato il colore Viola (#FF00FF).
Note importanti:

•I colori che sono stati assegnati in questo esempio sono semplificati con l'unico scopo di 
apprendere il più possibile questi concetti.
•Nei nostri siti possiamo assegnare i colori che ci servono, anche in funzione degli altri colori 
utilizzati in generale per il sito e non solo per come ci aggradano.
•Per queste cose di layout, conviene fare delle prove, cambiando i colori a piacimento, ma facendo 
verificare sempre da un occhio amico.
•L'ordine di questi codici di stato deve seguire esattamente lo stesso ordine inserito sopra, 
quindi, non è possibile, per esempio, mettere il link visitato per primo. Nel caso fossero inseriti 
questi codici in modo errato, non funzioneranno i cambiamenti dello stile e non verrà quindi letto 
lo stato del link.
La proprietà text-decoration.

C'è bisogno di introdurre questa proprietà in quanto ci potrebbe servire, anche se c'è l'esigenza 
per gli ipovedenti di non sottolineare i link, togliendo l'effetto della sottolineatura. Questo 
effetto di sottolineatura appare al momento in cui il mouse passa sopra il link stesso e l'effetto 
evidenzia immediatamente il link. Le persone vedenti si sono abituate a questo effetto, quindi, 
ritengo importante inserire questa proprietà nella eventualità in cui vogliate far analizzare il 
lavoro da una persona vedente. Tra l'altro, questa proprietà fa parte degli effetti del testo che 
analizzeremo in seguito.

Questa proprietà deve essere inserita in questo modo:

a:link {text-decoration: none; }

a:hover {text-decoration: underline; }

Anche se non cambia nulla a inserire delle linee di codice distinto all'interno del file CSS, si 
può inserire anche la proprietà del colore all'interno delle stesse parentesi graffe, inserendo una 
unica linea di codice.

Testo e codice di formattazione.

Ora, cerchiamo di dare un aspetto piacevole al nostro sito, quindi, introduciamo le prime nozioni 
sui caratteri che compongono i nostri testi e la loro formattazione.

Il codice html che, in passato, permetteva di assegnare il font e la sua formattazione direttamente 
nel codice della pagina stessa, in questa nuova versione 5 di questo linguaggio, non lo permette 
più, demandando al solo file css la formattazione di tutti i caratteri del testo del sito.

Tutti i Browser hanno dei loro caratteri predefiniti, quindi, l'assenza della dichiarazione di 
formattazione nel file CSS non significa che il sito ne rimanga privo. Ovviamente è importante 
saper inserire la formattazione e saperla personalizzare, anche a seconda dell'elemento a cui 
vogliamo assegnarla.

Tramite i fogli di stile, possiamo assegnare una formattazione personalizzata e specifica per ogni 
elemento html del sito, oltre che poter decidere di impostare due formattazioni diverse per 
elementi uguali ma in posizioni diverse nella pagina.

Quindi, si capisce benissimo che le possibilità sono illimitate e possiamo decidere quello che 
vogliamo e come meglio crediamo, sempre nell'ottica che ci serve un occhio in prestito per valutare 
contrasti e colori, nonché le posizioni del testo nel contesto della pagina e dei suoi oggetti. Nel 
concreto, possiamo stabilire i caratteri, le dimensioni e i colori per ogni paragrafo, magari 
diversi tra i vari paragrafi, le varie intestazioni, per i collegamenti, e per tutti gli altri 
oggetti di programmazione. Per esempio, possiamo decidere che all'interno di una o più liste, il 
carattere deve essere diverso da quello delle etichette dei link. Inoltre, utilizzando gli 
identificativi (id), tutte le intestazioni dello stesso livello potranno avere formattazioni 
diverse. Il tutto può essere applicato a qualsiasi altro oggetto di programmazione che lo consente.

Nel caso si volesse assegnare una regola di stile ad un elemento html, sarà sufficiente utilizzare 
l'elemento stesso come selettore, ricordandosi di non inserire i segni di maggiore e minore del tag.

Invece, per dare uno stile particolare ad un elemento univoco, dopo avergli assegnato 
l'identificativo nella pagina html, basterà inserire questo identificativo preceduto dal simbolo 
del cancelletto. Ora, passiamo alla pratica, spiegando di seguito il codice da utilizzare:

h1, h2, h3 {font-family: Tahoma, Geneva, sans-serif; color: #0000FF; }

Guardando la riga di codice sopra, la prima cosa che notiamo sono i selettori. Infatti, come 
spiegato in precedenza, stiamo dando una regola di stile alle intestazioni h1, h2 e h3. All'interno 
delle parentesi graffe, troviamo le coppie Proprietà-Valore. La prima che incontriamo è:

font-family: Tahoma, Geneva, sans-serif;

Notiamo che abbiamo inserito dopo la proprietà, tre valori, ossia tre tipologie di font, simili tra 
loro. A questo punto sarà spontaneo chiedersi: "Per quale motivo non possiamo assegnare solo il 
carattere che scegliamo?".

Il motivo è semplice. Non possiamo avere la certezza che nei browser o nei computer di tutti quelli 
che visiteranno il sito ci sia il carattere scelto, quindi, ne sceglieremo tre. Il primo è quello 
che preferiamo, mentre gli altri due, saranno quelli che sono i più usati in generale. Ad esempio, 
anche se è stato scelto il carattere (font) Taoma, non si ha la certezza che questo carattere sia 
poi installato nei computer di chi visita il sito.

Se inseriamo dei caratteri che i browser non utilizzano, il browser utilizzato dal visitatore del 
sito assegna quelli di default. In questo caso, si rischia di stravolgere totalmente l'aspetto 
delle pagine del sito.

Tornando a ritroso nella creazione dei font, gli si può assegnare una alternativa, un font più 
datato e diffuso, ma simile e appartenente alla stessa famiglia: il Geneva. Però, anche questo 
potrebbe non garantire un risultato corretto, sempre per lo stesso motivo, quindi, andando ancora 
più indietro, si può assegnare sans-serif.

Si rimanda alla rete i curiosi che volessero fare una scelta particolare del font per il proprio 
sito. Comunque, sia che la scelta cada sul geneva, sul Verdana, sul sans-serif, eccetera, sia ben 
chiaro che il font che noi scegliamo, lo inseriamo per primo, mentre a seguire, ne inseriamo altri 
che risulteranno alternativi a quello scelto.

Se il browser non trova il primo font, tenta di usare il secondo, poi cerca il terzo e così via. 
Per maggior sicurezza, alla fine della scelta dei font, inseriamo anche la famiglia del font 
principale scelto.

Ecco di seguito l'elenco delle famiglie più utilizzate:

•Serif: font con elementi decorativi alla fine dei tratti delle lettere (ad esempio Times New 
Roman).
•Sans-serif: senza elementi decorativi (ad esempio, Arial).
•Mono caratteri a spaziatura fissa. Ogni carattere, indipendentemente dalle sue dimensioni, occupa 
lo stesso spazio.
Ecco alcune delle combinazioni di font più utilizzate:

•Arial, Helvetica, sans-serif.
•Times New Roman, Times, serif.
•Courier New, Courier, mono.
•Georgia, Times New Roman, Times, serif.
•Verdana, Arial, Helvetica, sans-serif.
•Geneva, Arial, Helvetica, sans-serif.
Ovviamente, non c'è alcun obbligo nell'utilizzare queste combinazioni, l'importante è cercare una 
coerenza grafica tra i caratteri scelti. E anche qui, le prime volte che usiamo queste combinazioni 
di caratteri, se non vogliamo copiare dalle combinazioni più diffuse, basta farsi dare un occhio in 
prestito.

"font-size": è la proprietà che consente di assegnare le dimensioni ai caratteri del testo.

Esistono varie misure o tipologie di valori per le dimensioni ma, sempre per il fatto che non siamo 
a conoscenza del pc che visiterà il sito, spesso si rischia di avere anche in questi casi delle 
spiacevoli sorprese. Si possono utilizzare i pixel (px), le dimensioni dei punti assegnati dai 
programmi di videoscrittura (pt) o altre unità di misura come i pollici o i centimetri che 
affronteremo in una apposita lezione. Queste misure sono tutte da considerarsi relative e si 
intende che possono variare in alcune condizioni specifiche.

L'esempio che più ci fa capire qual è il problema da affrontare, è il Pixel. Usando questa unità di 
misura, il font può variare a seconda della risoluzione del monitor utilizzato, oltre al fatto che 
non tutti i browser ridimensionano correttamente i caratteri.

Inoltre, e questo caso a noi interessa per uno script futuro, assegnare pixel, significa forzare a 
mantenere quelle dimensioni. Prossimamente inseriremo uno script che permetterà di ingrandire tutto 
lo schermo in tre valori. Io inserisco questo script in tutti i miei siti in quanto utilissimo per 
le persone ipovedenti o gli anziani. Nel caso inserissi un font col valore delle dimensioni in 
pixel, questo script non funzionerebbe.

Altra considerazione va fatta per l'accessibilità dei siti: se non si usano correttamente le 
dimensioni nelle unità di misura che consentono alle tecnologie assistive di variare le dimensioni 
stesse, rischiamo di fare un sito inaccessibile per gli ipovedenti.

Qualsiasi unità di misura viene utilizzata, è necessario che il numero e l'unità siano attaccati 
così: {font-size: 14pt;}

Di solito è bene lasciare assegnare ai browser le dimensioni e quando serve utilizzare il valore 
della dimensione in em.

Quindi, per renderci conto di cosa stiamo parlando, è bene dire che un em (em-height) è l'unità di 
misura e che un em corrisponde all'altezza base di un carattere per un determinato font.

Per esempio, per portare un carattere al doppio della sua misura dobbiamo scrivere 2em.

un esempio pratico: h1 {font-size: 2em; }

Ecco anche un esempio per agevolare la lettura dei file css. Notate che andrò a capo per ogni 
coppia Proprietà-valore. Questo rende molto più semplice la lettura del CSS, soprattutto per le 
persone non vedenti. Altro accorgimento per chi utilizza uno screen-reader con sintesi vocale, sarà 
bene leggere dopo aver impostato la punteggiatura su tutto. Infatti, in questo modo, vengono letti 
tutti i simboli e i segni grafici in modo corretto, senza perdere nulla. Così facendo, avremo nella 
lettura del testo in un file CSS, una lettura fluida, con un susseguirsi delle impostazioni che 
possono essere identificate senza alcun problema di comprensione.

Vediamo il codice:

body {

font-family: Arial, Helvetica, sans-serif;

font-size: 14pt;

color: #000000;

}

h1, h2, h3 {

font-family: Tahoma, Geneva, sans-serif;

color: #0000FF;

}

h1 {

font-size: 18pt;

}

a:link {

text-decoration: none;

color: #0000FF;

}

a:visited {

color: #FF0000;

}

a:focus {

color: #00FF00;

}

a:hover {

text-decoration: underline;

color: #00FF00;

}

a:active {

color:#FF00FF;

}

Ovviamente, non è necessario e tanto meno obbligatorio scrivere in questo modo, riportando a capo 
ogni coppia proprietà-valore, ma è consigliabile e utile quando il file css inizia a diventare 
lungo.

In queste lezioni sui css, ho voluto rendere la teoria molto semplificata puntando per lo più a 
farvi mettere in pratica i primi rudimenti direttamente lavorando sul sito.

Tutti questi argomenti verranno ripresi nello specifico e spiegati di nuovo, considerando tutte le 
proprietà e tutti i valori che è possibile assegnare agli oggetti di programmazione nei fogli di 
stile.

Spesso mi accade di imbattermi in manuali dove all'inizio si parla solo di teoria, senza riportare 
nessun esempio come ho fatto nelle parti di questa guida fin qui pubblicata. Per le guide fatte in 
questo modo, realmente si inizia a fare concretamente qualcosa a partire dalla decima lezione. 
Puntualmente, poi, non avendo fatto nulla di concreto, si finisce per dimenticare tutto quello che 
si è letto.

Ovviamente, non è mia intenzione criticare altri manuali o altre metodologie di studio, ma avendo 
pensato questo corso prevalentemente per le persone non vedenti come me, ho cominciato da subito a 
mettere la pratica assieme alla teoria, proprio perché avendolo sperimentato sulla mia pelle, ho 
notato che, così facendo, si memorizzano meglio i concetti proprio perché vengono applicati 
immediatamente.

I fogli di stile, come anche il linguaggio html 5, sono complessi e pieni di codice, quindi, 
proprio perché complesso, è bene imparare il tutto poco alla volta, in modo che tutti i concetti 
rimangono ben fissati ed in modo che possiamo usare a nostro piacimento qualsiasi modalità di 
programmazione e stabilire a priori cosa mettiamo nelle pagine del nostro sito.

Vi rimando alla prossima lezione per approfondire i concetti sin qui trattati e per approfondire il 
discorso man mano che costruiremo il nostro sito.

***********

Per ulteriori spiegazioni, scrivere a: Roberto Abutzu
Torna all'indice