La gestione del testo e della tipografia è un aspetto essenziale dei CSS. Le proprietà che definiscono il modo in cui il testo appare sullo schermo sono tante e abbiamo deciso di suddividere l'argomento in due lezioni. Iniziamo quindi dalle proprietà di base. Sono quelle che definiscono i seguenti aspetti:
- il font da usare;
- la sua dimensione;
- la sua consistenza
- l'interlinea tra le righe;
- l'allineamento del testo:
- la sua decorazione (sottolineature, etc.).
Presenteremo qui una panoramica generale. Per gli approfondimenti è vivamente consigliata anche la lettura degli articoli suggeriti alla fine della lezione.
La proprietà font-family
La proprietà font-family serve a impostare il tipo di carattere tipografico per una qualunque porzione di testo. Si applica a tutti gli elementi ed è ereditata.
Gli uomini del W3C hanno creato un meccanismo che consente all'autore di impostare nei CSS non un unico font, ma un elenco di caratteri alternativi. Il meccanismo funziona così:
p {font-family: Arial, Verdana, sans-serif;}
Quando la pagina viene caricata, il browser tenterà di usare il primo font della lista. Se questo non è disponibile sul dispositivo dell'utente userà il secondo. In mancanza anche di questo, verrà utilizzato il font principale della famiglia sans-serif presente sul sistema. La spiegazione di tutto ciò è semplice: ovviare al problema dei diversi font presenti sulle varie piattaforme.
Dunque: quando si imposta la proprietà font-family
si possono usare tutti i font che desideriamo, valutando la loro presenza sui vari sistemi e non dimenticando mai di inserire alla fine l'indicazione di una famiglia generica. Esse sono cinque (tra parentesi riportiamo i caratteri predefiniti su ciascuna sui sistemi Windows):
- serif (Times New Roman);
- sans-serif (Arial);
- cursive (Comic Sans);
- fantasy (Allegro BT);
- monospace (Courier).
I nomi dei font della lista vanno separati dalla virgola. I caratteri con nomi composti da più parole vanno inseriti tra virgolette.
Sintassi ed esempi
selettore {font-family: <font 1>, <font2>, ....,<famiglia generica>;}
Ed ecco un semplice snippet di codice esemplificativo:
div {font-family: Georgia, "Times New Roman", serif;}
La proprietà font-size
Insieme a font-family
è la proprietà considerata essenziale nella definizione dell'aspetto del testo, di cui definisce le dimensioni. È applicabile a tutti gli elementi ed ereditata.
Sintassi ed esempi
selettore {font-size: valore;}
I valori delle dimensioni del testo possono essere espressi in vari modi. I diversi sistemi si possono distinguere a seconda che definiscano le dimensioni in senso assoluto o relativo. Dimensione assoluta significa che essa non dipende da nessun altro elemento ed è quella definita dall'unità di misura usata. Dimensione relativa significa che essa viene calcolata in base alla dimensione del testo dell'elemento parente.
Sono valori assoluti:
- le sette parole chiave
xx-small
,x-small
,small
,medium
,large
,x-large
,xx-large
; - quelli espressi con le seguenti unità di misura: pixel (
px
), centimetri (cm
), millimetri (mm
), punti (pt
), picas (pc
), pollici (in
), x-height (ex
). Di tutte queste unità, le uniche proponibili per il testo sono punti e pixel. Si consiglia di usare la prima solo per CSS destinati alla stampa.
Sono valori relativi:
- le parole chiave
smaller
elarger
; - quelli espressi in
em
; - quelli espressi in percentuale.
Nelle pratiche più comuni, la scelta del dimensionamento dei font viene fatta tra pixel, em e percentuale.
p {font-size: 12px;}
div {font-size: 50%;}
h2 {font-size: 1.2em;}
La proprietà font-weight
Serve a definire la consistenza o "peso" visivo del testo. Si applica a tutti gli elementi ed è ereditata.
Sintassi ed esempi
selettore {font-weight: valore;}
Il "peso" visivo di un carattere può essere espresso con una scala numerica o con parole chiave:
- valori numerici: 100 - 200 - 300 - 400 - 500 - 600 - 700 - 800 - 900 ordinati in senso crescente (dal più leggero al più pesante);
normal
: valore di default, è l'aspetto normale del font ed equivale al valore 400;bold
: il carattere acquista l'aspetto che definiamo in genere 'grassetto'; equivale a 700;bolder
: misura relativa; serve a specificare che una determinata porzione di testo dovrà apparire più pesante a livello visuale rispetto al testo dell'elemento parente;lighter
: misura relativa; il testo sarà più leggero di quello dell'elemento parente.
p {font-weight: 900;}
div {font-weight: bold;}
La proprietà font-style
Imposta le caratteristiche del testo in base ad uno di questi tre valori:
normal
: il testo mantiene il suo aspetto normale;italic
: formatta il testo in corsivo;oblique
: praticamente simile a italic.
La proprietà si applica a tutti gli elementi ed è ereditata.
Sintassi ed esempi
selettore {font-style: valore;}
p {font-style: italic;}
La proprietà line-height
Grazie a line-height è possibile usare nelle nostre pagine un sistema di interlinea paragonabile a quello dei word-processor. La proprietà, in realtà, serve a definire l'altezza di una riga di testo all'interno di un elemento blocco. Ma l'effetto ottenuto è appunto quello di impostare uno spazio tra le righe. La proprietà si applica a tutti gli elementi ed è ereditata.
Sintassi ed esempi
selettore {line-height: valore;}
I valori che è possibile utilizzare sono:
normal
: il browser separerà le righe con uno spazio ritenuto "ragionevole"; dovrebbe corrispondere a un valore numerico compreso tra 1 e 1.2;- un valore numerico: usando valori numerici tipo 1.2, 1.3, 1.5 si ottiene questo risultato: l'altezza della riga sarà uguale alla dimensione del font moltiplicata per questo valore;
- un valore numerico con unità di misura: l'altezza della riga sarà uguale alla dimensione specificata;
- percentuale: l'altezza della riga viene calcolata come una percentuale della dimensione del font.
Il consiglio è di non usare mai la percentuale, di valutare attentamente l'utilizzo di unità esplicite e di affidarsi senza problemi al valore numerico.
p {line-height: 1.5;}
body {line-height: 15px;}
La proprietà font
La proprietà font è una proprietà a sintassi abbreviata che serve a impostare con una sola dichiarazione tutte le principali caratteristiche del testo. Le proprietà definibili in forma abbreviata con font
sono:
font-family
;font-size
;line-height
;font-weight
;font-style
;font-variant
;- font di sistema.
Sintassi ed esempi
selettore {font: valori;}
Alcune indicazioni sull'uso. I valori relativi alle singole proprietà non vanno separati da virgole. Virgola che deve invece separare i valori definiti per la font-family
. Anche in questo caso i nomi dei font costituiti da più parole vanno racchiusi tra virgolette. Per quanto riguarda l'ordine, la dichiarazione dovrebbe sempre finire con la coppia font-size > font-family
.
Il valore della proprietà line-height
si imposta invece così, facendo seguire il suo valore a quello di font-size
e separando i due con una slash:
font-size/line-height
Nel codice che segue definiamo nell'ordine: font-weight, dimensione/interlinea, font-family.
p {font: bold 12px/1.5 Georgia, "Times New Roman", serif;}
Allineare il testo: la proprietà text-align
La proprietà serve a impostare l'allineamento del testo. È ereditata e si applica a tutti gli elementi.
Sintassi ed esempi
selettore {text-align: valore;}
I valori possono essere rappresentati da una delle seguenti keyword:
left
: allinea il testo a sinistra;right
: allinea il testo a destra;center
: centra il testo;justify
: giustifica il testo.
p {text-align: center;}
div {text-align: justify;}
La proprietà text-decoration
Imposta particolari decorazioni e stili per il testo. Ereditabile e applicabile a tutti gli elementi.
Sintassi ed esempi
selettore {text-decoration: valore o valori;}
I valori che è possibile usare sono:
none
: il testo non avrà alcuna decorazione particolare;underline
: il testo sarà sottolineato;overline
: il testo avrà una linea superiore;line-through
: il testo sarà attraversato da una linea orizzontale al centro;blink
: testo lampeggiante.
p {text-decoration: none;}
a { text-decoration: underline;}
Esempi per tutte le proprietà.
Approfondimenti
- Impostare la dimensione base del testo
- Stabilire le dimensioni dei font in un CSS: vantaggi, problemi e soluzioni
- Note pratiche sulle unità di misura per il testo
- Font personalizzati con @font-face
- Web fonts con @font-face
- Capire e usare il line-height