CSS

I fogli di stile CSS (Cascading style sheet) rappresentano un metodo semplice per consentire di dichiarare e abbinare degli stili di composizione ai documenti HTML e ad altri tipi di sistemi SGML.




regole|ereditarietà| cascading|font |colori e sfondi |testo|


Attualmente il lavoro su CSS ha generato due «livelli», CSS1 e CSS2, intesi come la prima e la seconda versione del linguaggio di stile CSS. Teoricamente, il linguaggio CSS deve essere compatibile sia verso l'alto che verso il basso, nel senso che il primo livello CSS è compatibile con il secondo e il secondo è compatibile con il primo. In pratica, le estensioni fatte al linguaggio nel CSS2 sono tali per cui dovrebbero essere ignorate semplicemente dai programmi in grado di interpretare correttamente solo CSS1.



Logica del linguaggio CSS

Nella documentazione di CSS, le sue istruzioni vengono definite «regole», che si esprimono sinteticamente secondo la forma seguente, dove le parentesi graffe fanno parte della dichiarazione della regola:

selettore { dichiarazione }

Il principio è molto semplice: il «selettore» rappresenta qualcosa all'interno del documento; la dichiarazione è ciò che si vuole ottenere su tale oggetto. All'interno di una regola si possono raggruppare più selettori, applicando così le stesse dichiarazioni; inoltre si possono indicare più dichiarazioni: i selettori si separano con la virgola; le dichiarazioni si separano con un punto e virgola:

selettore[selettore]... { dichiarazione[dichiarazione]... }

Le regole possono essere scritte anche utilizzando più righe di testo normale, per cui, la stessa sintassi appena mostrata potrebbe essere scritta anche come nel modo seguente (si osservi l'aggiunta di un punto e virgola ulteriore):

selettore[selettore]... {
    dichiarazione;
    [dichiarazione;]
    ...
}

Teoricamente, quando si scrivono le regole iniziando ogni dichiarazione in una riga separata, è possibile evitare l'aggiunta del punto e virgola finale, ma questa scorciatoia non è consigliabile in generale.

Le dichiarazioni si scompongono a loro volta in proprietà e valori loro assegnati:

selettore[selettore]... {
    proprietàvalore [valore_alternativo]...;
    [proprietàvalore [valore_alternativo]...;]
    ...
}

Come si vede, alle proprietà si possono assegnare più valori alternativi, in ordine di importanza.

I commenti in un foglio di stile CSS si rappresentano nella forma:

/* testo_ignorato */



Ereditarietà e collegamento in cascata

Una caratteristica fondamentale del linguaggio CSS è l'ereditarietà di talune caratteristiche in certe circostanze. Per comprendere il significato della cosa basta pensare alla struttura dell'HTML, o a un altro linguaggio SGML in generale: se si attribuisce una caratteristica stilistica a un elemento che per sua natura ne può contenere altri, ci si aspetta intuitivamente che questa si trasmetta anche ai livelli inferiori se applicabile, a meno che per tali elementi sia stato definito espressamente qualcosa di diverso.

Volendo fare un esempio più pratico, si può immaginare una caratteristica riferita alla dimensione del carattere di un blocco di testo. Se questo blocco contiene delle porzioni di testo delimitate da altri elementi, che possono servire per ottenere un testo enfatizzato in qualche modo, è normale attendersi che per queste porzioni venga utilizzata la stessa dimensione del carattere, senza bisogno di dichiarare esplicitamente e dettagliatamente questa richiesta.

In generale, per quanto riguarda l'HTML, è normale assegnare all'elemento BODY le caratteristiche generali di tutto il documento, sfruttando il principio di ereditarietà.

L'altra caratteristica fondamentale del linguaggio CSS è la possibilità di definire gli stili in cascata. Questo significa che si possono abbinare assieme più fogli di stile e che nel complesso che si crea, ci possono essere regole che si contraddicono a vicenda. Evidentemente, in questi casi viene applicato un criterio di scelta in base alla precedenza data alle regole.



Proprietà

Di seguito vengono mostrate una serie di tabelle che descrivono l'utilizzo di alcune proprietà comuni nel linguaggio CSS. Bisogna ricordare che ogni programma di lettura o di composizione dei documenti HTML può fare la propria scelta su quali siano le dichiarazioni da prendere in considerazione, ignorando tutto il resto. Pertanto, si tratta solo di un'indicazione e l'utilizzo degli stili CSS deve essere sempre valutato tenendo conto delle carenze che poi ci possono essere in fase di lettura.

Proprietà Valori Descrizione
font-family tipo_di_carattere Tipo di carattere.
font-style normal Forma normale.
italic Corsivo.
oblique Obliquo.
font-variant normal Serie normale.
small-caps Maiuscoletto.
font-weight normal Tono normale.
bold Nero.
bolder Nerissimo.
lighter Chiaro.
font-size npt Dimensione in punti.
ncm Dimensione in centimetri.
nmm Dimensione in millimetri.
nem Dimensione relativa in quadratoni.
nex Dimensione relativa in Ex.
n% Dimensione relativa percentuale.
small Carattere piccolo.
medium Carattere normale.
large Carattere grande.

Proprietà riferite ai colori e allo sfondo:

Proprietà Valori Descrizione
color colore Colore del carattere o di primo piano.
background-color colore Colore dello sfondo.
background-image url(uri) Immagine da usare per lo sfondo.

Proprietà riferite al testo:

Proprietà Valori Descrizione
vertical-align baseline Testo al livello normale.
middle Allinea al centro.
sub Pedice.
super Apice.
text-transform none Nessuna trasformazione del testo.
capitalize Rende maiuscola la prima lettera delle parole.
uppercase Tutto maiuscolo.
lowercase Tutto minuscolo.
text-align left Allinea a sinistra.
right Allinea a destra.
center Centra.
justify Allinea a sinistra e a destra.
text-indent npt Rientro in punti.
ncm Rientro in centimetri.
nmm Rientro in millimetri.
nem Rientro relativo in quadratoni.
nex Rientro relativo in Ex.
n% Rientro relativo in percentuale.
line-height normal Altezza normale della riga.
npt Altezza in punti.
ncm Altezza in centimetri.
nmm Altezza in millimetri.
n% Altezza relativa in percentuale.


regole|ereditarietà| cascading|font |colori e sfondi |testo|