Gli esempi visti finora hanno utilizzato per la visualizzazione varie indicazioni di stile. Il linguaggio che si è specializzato e standardizzato per esprimerle non è HTML, ma CSS, ora alla versione 3 (e già si pensa che sia ora di superarlo). Per una rapida introduzione continuiamo a seguire Matthew Mc Donald, "HTML5 - the missing manual", all'Appendice A.
Struttura di uno stylesheet:
Ogni stylesheet contiene una o più regole, ciascuna delle quali ha questa struttura:
selettore {
proprietà1: valore1;
proprietà2: valore2;
  (...)
}
- Il selettore identifica la parte di contenuto della pagina
di cui si vuole modificare l'aspetto. Il browser cerca tutti gli
elementi della pagina indicati dal selettore ed applica le
proprietà corrispondenti. Se
più selettori identificano lo stesso elemento vengono
applicati dal pù generale al più specifico. A parità
di specificità prevale l'ultimo trovato nello stylesheet.
La sintassi dei selettori è articolata e potente: vale la pena di approfondirla uin po'. Gran parte della potenza di strumenti comejQuery
deriva dalla sintassi dei selettori. - La proprietà identifica il tipo di formattazione che si intende modificare. Colori, font, allineamento, o altro. Ogni regola può definire un numero qualsiasi di proprietà.
- Il valore viene assegnato alla proprietà scelta. Ecco una tabella delle proprietà più frequentemente utilizzate, linkate alle rispettive descrizioni in w3schools.com:
I commenti negli style sheet usano la convenzione dei commenti del linguaggio C:
/* Questo è un commento. */
Il fatto che i tre linguaggi di cui ci occupiamo (HTML, CSS e JavaScript) utilizzino sintassi diverse anche per i commenti indica la loro evoluzione da contesti diversi...
Sintassi dei selettori
Un riassunto della sintassi dei selettori:
- Per nome dell'elemento:
nomeelemento
- Seleziona tutti gli elementi con nomenomeelemento
. - Per classe:
.nomeclasse
- Seleziona tutti gli elementi il cui attributoclass
è definito comenomeclasse
. - Per ID:
#qualeid
- Seleziona tutti gli elementi il cui attributoid
è definito comequaleid
. - Combinazione:
selettore1,selettore2,...
- Seleziona gli elementi indicati da uno qualsiasi dei selettori. - Contenimento:
selettore1 selettore2
- Seleziona gli elementi indicati daselettore2
e contenuti in un elemento indicato daselettore1
. - Ordine:
selettore1~selettore2
- Seleziona gli elementi indicati daselettore2
preceduti da un elemento indicato daselettore1
. - Parentela:
selettore1>selettore2
- Seleziona gli elementi indicati daselettore2
il cui padre è un elemento indicato daselettore1
. - Adiacenza:
selettore1+selettore2
- Seleziona gli elementi indicati daselettore2
che seguono immediatamente un elemento indicato daselettore1
ma non sono contenuti in esso. - Per attributo (solo CSS3):
[nomeattributo]
- seleziona gli elementi che hanno definito l'attributonomeattributo
.
[nomeattributo=valoreattributo]
- seleziona gli elementi per i quali l'attributonomeattributo
è definito al valorevaloreattributo
. - Per pseudo-classe: - Permette di selezionare elementi che rientrano in una particolare categoria. La pseudo-classe può essere applicata come qualificatore ad altri selettori. Qualche esempio:
not:(selettore)
(CSS3) Un elemento che non è del tipo selezionato da selettore.
root:
(CSS3) L'elemento padre del documento.
link:
Link ad altri documenti non visitati.
visited:
Link ad altri documenti già visitati.
empty:
(CSS3) Elementi che non hanno figli.
only-child:
Elementi unici contenuti in un altro elemento.
:nth-child(n)
(CSS3) L'n-esimo figlio di un elemento. Possono essere utilizzate espressioni come2n
(elementi pari),2n+1
(elementi dispari), etc.
:nth-last-child(n)
(CSS3) L'n-esimo figlio di un elemento, contando all'indietro dall'ultimo. Stesse regole come per il selettore precedente.
:valid
(CSS3) Elemento contenente un valore valido.
::selection
(non standardizzato ma supportato!) La porzione di un elemento selezionata (evidenziata) dall'utente.
::before
Posizione prima dell'elemento a cui la pseudo-classe si riferisce.
::after
Posizione dopo l'elemento a cui la pseudo-classe si riferisce.
Bibliografia:
- Matthew Mc Donald, "HTML5 - the missing manual", 2nd edition, O'Reilly - Appendice A
- Home page di CSS:
http://www.w3.org/Style/CSS/ - CSS Reference:
http://www.w3schools.com/cssref/
Unità di misura di CSS
È importante preferire una specifica delle dimensioni in termini relativi:
Unità | Descrizione |
---|---|
% | percentuale della dimensione dell'elemento che contiene quello selezionato |
vh | percentuale della viewport del browser. Utile ma non ancora standardizzato |
in |
pollici (1 pollice = 2,54 cm) |
cm |
centimetri |
mm |
millimetri |
em |
1em corrisponde alla dimensione del font corrente.
2em è 2 volte la dimensione del font corrente.
Ad esempio se il font è di 12pt
2em sono 24pt . Questa unità
è particolarmente utile per i CSS, perché
scala automaticamente in proporzione al font in uso.
|
ex |
Un ex è la dimensione in orizzontale (x-height)
del font in uso. (corrisponde di solito circa a metà della
dimensione del font.
|
pt |
punto tipografico (1pt equivale a 1/72 di pollice) |
pc |
'pica' (1pc equivale a 12 punti, 1/6 di pollice) |
px |
pixel (un pixel è un punto sullo schermo del computer) |