CSS: proprietà del testo

Le proprietà CSS che controllano il testo regolano l'interlinea, l'allineamento verticale, l'indentazione della prima riga dei blocchi e la gestione dello spazio bianco. In questo articolo tratteremo in dettaglio queste proprietà.

La proprietà 'line-height'

'line-height'
Valore: normal | <number> | <length> | <percentage> | inherit
Iniziale: normal
Si applica a: tutti gli elementi
Ereditata: si
Percentuali: in riferimento alla dimensione del font dell'elemento stesso
Media: visuale
Valore calcolato: per <length> e <percentage> il valore assoluto; altrimenti come specificato

In un elemento di blocco, cella di tabella, didascalia di tabella o inline-block, il cui contenuto è composto di elementi inline, 'line-height' specifica l'altezza minima dei box di riga all'interno dell'elemento. In un elemento inline, 'line-height' specifica l'altezza usata nel calcolo dell'altezza del box di riga (tranne per gli elementi inline rimpiazzati).

Poichè il valore di 'line-height' può essere diverso dall'altezza dell'area di contenuto, può esserci dello spazio sopra e sotto i caratteri. La differenza tra l'altezza del contenuto e il valore in uso di 'line-height' viene detto interlinea. La metà dell'interlinea viene detta semi-interlinea.

I browser centrano i caratteri verticalmente in un box inline aggiungendo la semi-interlinea sopra e sotto i caratteri. Per esempio, se una parte di testo è alta 12px ('font-size') e la 'line-height' è 14px, si aggiungono 2px di spazio, 1px sopra e 1px sotto i caratteri. Dunque avremo:

interlinea = 'line-height' - 'font-size'

I valori sono:

normal
I browser usano un valore "ragionevole" basato sul font dell'elemento. Il valore ha lo stesso significato di <number>. Viene raccomandato un valore in uso compreso tra 1.0 e 1.2. Il valore calcolato è 'normal'.
<length>
La lunghezza specificata viene usata nel calcolo dell'altezza del box di riga. I valori negativi non sono ammessi.
<number>
Il valore in uso di 'line-height' è un numero moltiplicato per la dimensione del font dell'elemento. I valori negativi non sono ammessi. Il valore calcolato coincide con quello specificato.
<percentage>
Il valore calcolato di 'line-height' è la percentuale moltiplicata per la dimensione calcolata del font dell'elemnto. I valori negativi non sono ammessi.

Gli esempi che seguono hanno tutti la stessa 'line-height':


p {line-height: 1.2; font-size: 12px} /* numero */
p {line-height: 1.2em; font-size: 12px} /* lunghezza */
p {line-height: 120%; font-size: 12px} /* percentuale */

La proprietà 'vertical-align'

'vertical-align'
Valore: baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit
Iniziale: baseline
Si applica a: elementi inline e 'table-cell'
Ereditata: no
Percentuali: in riferimento alla 'line-height' dell'elemento stesso
Media: visuale
Valore calcolato: per <length> e <percentage> la lunghezza assoluta; altrimenti come specificato

Questa proprietà influenza il posizionamento verticale, all'interno di un box di riga, dei box generati dagli elementi inline. I valori sono:

baseline
Allinea la linea di base del box con la linea di base del box genitore. Se il box non ha una linea di base, allinea il limite del margine inferiore con la linea di base del genitore.
middle
Allinea il punto intermedio del box con la linea di base del box genitore, più la metà della x-height del genitore.
sub
Abbassa la linea di base del box fino alla giusta posizione per i pedici del box genitore (questo valore non ha effetto sulla dimensione del font).
super
Innalza la linea di base del box fino alla giusta posizione per gli apici del box genitore (questo valore non ha effetto sulla dimensione del font).
text-top
Allinea la parte superiore del box con la parte superiore dell'area di contenuto del genitore.
text-bottom
Allinea la parte inferiore del box con la parte inferiore dell'area di contenuto del genitore.
<percentage>
Innalza (valore positivo) a abbassa (valore negativo) il box di una percentuale relativa al valore di 'line-height'. '0%' è lo stesso che 'baseline'.
<length>
Innalza (valore positivo) o abbassa (valore negativo) il box della distanza specificata. '0px' è lo stesso che 'baseline'.

I valori che seguono allineano l'elemento relativamente al box di riga. Poichè l'elemento può avere dei figli allineati relativamente ad esso, e questi a loro volta possono avere dei discendenti allineati in relazione ad essi, questi valori usano i confini del sottoalbero allineato.

top
Allinea la parte superiore del sottoalbero allineato con la parte superiore del box di riga.
bottom
Allinea la parte inferiore del sottoalbero allineato con la parte inferiore del box di riga.

Esempi:


sub {vertical-align: sub}
sup {vertical-align: super}
span {vertical-align: 50%}
em {vertical-align: -3px}

La proprietà 'text-indent'

'text-indent'
Valore: <length> | <percentage> | inherit
Iniziale: 0
Si applica a: elementi di blocco, celle di tabella e inline-block
Ereditata: si
Percentuali: in riferimento alla larghezza del blocco contenitore
Media: visuale
Valore calcolato: la percentuale specificata o la lunghezza assoluta

Questa proprietà specifica l'indentazione della prima riga di testo in un blocco (l'indentazione del primo box che fluisce nel primo box di riga del blocco). I browser rendono l'indentazione con uno spazio vuoto. I valori sono:

<length>
L'indentazione è una lunghezza fissa.
<percentage>
L'indentazione è una percentuale della larghezza del blocco contenitore.

I valori possono essere negativi, anche se ci sono limiti nell'implementazione dei browser (vedi Internet Explorer Windows versione 6 e 7). Se un valore è negativo o supera la larghezza del blocco, il primo box fuoriesce dal blocco. Esempi:


h2 {text-indent: -1em}
h2 + p {text-indent: 1em}

Vedi test.

4. La proprietà 'text-align'

'text-align'
Valore: left | right | center | justify | inherit
Iniziale: 'left' se 'direction' è 'ltr', altrimenti 'right'
Si applica a: elementi di blocco, celle di tabella e inline-block
Ereditata: si
Percentuali: N/A
Media: visuale
Valore calcolato: come specificato

Questa proprietà specifica l'allineamento del testo in un blocco. Il testo può essere allineato a sinistra ('left'), a destra ('right'), al centro ('center') o giustificato ('justify'). Nel caso del testo giustificato, il browser può allungare i box inline oltre ad aggiustare le loro posizioni. Esempio:


p {text-align: justify}

La proprietà 'text-decoration'

'text-decoration'
Valore: none | [underline || overline || line-through || blink] | inherit
Iniziale: none
Si applica a: tutti gli elementi
Ereditata: no (vedi sotto)
Percentuali: N/A
Media: visuale
Valore calcolato: come specificato

Questa proprietà descrive le decorazioni aggiunte al testo di un elemento usando il colore dell'elemento. Se specificata su un elemento inline, influenza tutti i box generati dall'elemento; per gli altri elementi, la decorazione si propaga ad un box inline anonimo che contiene tutti i discendenti inline dell'elemento, e ad ogni discendente di blocco dell'elemento. Non si propaga ai discendenti flottati o posizionati in modo assoluto, né ai discendenti 'inline-block' o 'inline-table'. I valori sono:

none
Non produce alcuna decorazione.
underline
Ogni riga di testo viene sottolineata.
overline
Ogni riga di testo ha una riga sopra di essa.
line-through
Ogni riga di testo ha una riga che la attraversa nel mezzo.
blink
Il testo lampeggia. Scarsissimo il supporto dei browser, in quanto il testo lampeggiante è sconsigliato nelle pratiche di accessibilità dei contenuti web.

Esempi:


a:link, a:visited {text-decoration: none}
a:hover {text-decoration: underline overline}
del {text-decoration: line-through}

La proprietà 'letter-spacing'

'letter-spacing'
Valore: normal | <length> | inherit
Iniziale: normal
Si applica a: tutti gli elementi
Ereditata: si
Percentuali: N/A
Media: visuale
Valore calcolato: 'normal' o lunghezza assoluta

Questa proprietà specifica la spaziatura tra i caratteri del testo. I valori sono:

normal
La spaziatura è quella normale per il font in uso. Questo valore consente ai browser di alterare lo spazio tra i caratteri per giustificare il testo.
<length>
Questo valore specifica lo spazio tra i caratteri in aggiunta allo spazio predefinito. I valori possono essere negativi. I browser non possono alterare lo spazio per giustificare il testo.

Esempi:


h1 {letter-spacing: -0.1em}
p {text-align: justify; letter-spacing: 0.1em}

La proprietà 'word-spacing'

'word-spacing'
Valore: normal | <length> | inherit
Iniziale: normal
Si applica a: tutti gli elementi
Ereditata: si
Percentuali: N/A
Media: visuale
Valore calcolato: per 'normal' il valore '0'; altrimenti la lunghezza assoluta

Questa proprietà specifica la spaziatura tra le parole. I valori sono:

normal
La spaziatura normale tra parole, definita dal font in uso e/o dal browser.
<length>
Questo valore indica una spaziatura tra le parole in aggiunta allo spazio normale. I valori possono essere negativi.

Esempio:


h1 {word-spacing: 0.5em}

La proprietà 'text-transform'

'text-transform'
Valore: capitalize | uppercase | lowercase | none | inherit
Iniziale: none
Si applica a: tutti gli elementi
Ereditata: si
Percentuali: N/A
Media: visuale
Valore calcolato: come specificato

Questa proprietà controlla le maiuscole e le minuscole del testo di un elemento. I valori sono:

capitalize
Trasforma il primo carattere di ciascuna parola in maiuscolo.
uppercase
Trasforma tutti i caratteri di ciascuna parola in maiuscolo.
lowercase
Trasforma tutti i caratteri di ciascuna parola in minuscolo.
none
Nessuna trasformazione.

Esempi:


acronym, abbr {text-transform: lowercase; font-variant: small-caps}
h1 {text-transform: capitalize}

La proprietà 'white-space'

'white-space'
Valore: normal | pre | nowrap | pre-wrap | pre-line | inherit
Iniziale: normal
Si applica a: tutti gli elementi
Ereditata: si
Percentuali: N/A
Media: visuale
Valore calcolato: come specificato

Questa proprietà specifica il trattamento dello spazio bianco all'interno di un elemento. I valori sono:

normal
Questo valore dice al browser di far collassare le sequenze di spazio bianco e di spezzare le righe per riempire i box inline.
pre
Questo valore impedisce al browser di far collassare le sequenze di spazio bianco. Le righe sono interrotte solo da nuove righe nel sorgente (create con un invio a capo) o da "\A" nel contenuto generato. Si veda l'elemento pre.
nowrap
Questo valore funziona come 'normal', ma sopprime le interruzioni di riga all'interno del testo.
pre-wrap
Valore CSS 2.1, non supportato da IE7 e inferiori.
pre-line
Valore CSS 2.1, non supportato da IE7 e inferiori.

Esempi:


pre {white-space: pre}
a {white-space: nowrap}
p:before {content: &quot;Lorem'\A' ipsum&quot;; white-space: pre}
Torna su