Come cambiare il colore del testo in HTML
Usa la proprietà CSS color. Imposta il colore del testo di un elemento, e ogni elemento al suo interno eredita lo stesso colore, a meno che non ne imposti uno suo.
La proprietà si chiama color, non font-color o text-color. Quei nomi non esistono in CSS e vengono ignorati in silenzio.
Perché non il tag font
I vecchi tutorial mostrano <font color="red">. Quel tag è stato rimosso da HTML anni fa: i validatori lo segnalano come errore, e mescola lo stile con il markup, quindi cambiare un colore significa modificare a mano ogni tag. I browser lo disegnano ancora per compatibilità, ed è l'unico motivo per cui sembra funzionare.
<!-- obsolete -->
<font color="red">Warning</font>
<!-- use this -->
<span style="color: red;">Warning</span>
<!-- or better, a class you can change in one place -->
<span class="warning">Warning</span>
Modi di scrivere il colore
color accetta tutti i formati di colore CSS. I quattro più comuni:
| Formato | Esempio | Note |
|---|---|---|
| Con nome | color: tomato; | 148 colori con nome, comodi per prove veloci |
| Hex | color: #2563eb; | Il più comune nei file di design |
| rgb() | color: rgb(37 99 235); | Rosso, verde e blu da 0 a 255 |
| hsl() | color: hsl(221 83% 53%); | Tonalità, saturazione, luminosità: facile da schiarire o scurire |
Hex, rgb() e hsl() possono avere un canale alfa per un testo semitrasparente, come #2563eb80 o rgb(37 99 235 / 50%). La pagina sui colori CSS spiega ogni formato.
Colorare una pagina intera, un titolo o una sezione
Imposta il colore una volta su body e lascia che l'ereditarietà faccia il resto, poi sovrascrivilo dove serve:
Un quasi nero morbido come #111827 o #374151 su bianco affatica meno gli occhi di un #000000 puro e si legge comunque come nero.
Colori dei link
I link sono l'eccezione all'ereditarietà: il browser dà loro un blu tutto loro (e viola dopo la visita), quindi un colore sul genitore non li raggiunge. Impostalo sul link, oppure di' al link di ereditarlo:
:hover, :visited e :focus-visible ti permettono di cambiare il colore per ogni stato; la pagina sull'hover li tratta. Quando un link ha lo stesso colore del testo intorno, mantieni la sottolineatura, così resta riconoscibile come link.
Rendi il testo leggibile: il contrasto
Il colore del testo è solo metà della coppia; l'altra metà è lo sfondo. Le WCAG chiedono un rapporto di contrasto di almeno 4.5:1 per il testo normale e 3:1 per il testo grande (circa 24px, o 19px in grassetto).
Il testo grigio chiaro in stile placeholder è l'errore più comune. Gli strumenti per sviluppatori di Chrome e Firefox mostrano il rapporto di contrasto quando ispezioni il colore di un testo.
currentColor: riusa il colore del testo
currentColor è una parola chiave che vale quanto il color dell'elemento. Bordi, contorni e icone SVG inline possono usarla, quindi cambiando un solo color si ricolorano insieme il testo e le sue decorazioni:
Errori comuni
- Scrivere
font-colorotext-color. La proprietà ècolor. - Usare il tag
<font>. È obsoleto; usa il CSS. - Aspettarsi che i link ereditino. Imposta
a { color: ... }oppurecolor: inherit. - Il colore come unico segnale. "I campi in rosso sono obbligatori" non funziona per chi non distingue il rosso. Aggiungi un testo o un'icona.
- Testo grigio a basso contrasto. Controlla il rapporto: 4.5:1 o più per il testo normale.
- Usare
opacityper schiarire il testo. Sbiadisce l'intero elemento, sfondo e figli compresi. Usa invece un colore più chiaro o un colore con alfa.
Domande frequenti
Come si cambia il colore del testo in HTML?
Usa la proprietà CSS color, in un foglio di stile o in un attributo style: <p style="color: #2563eb;">Blue text</p>. Il vecchio tag <font color> è obsoleto.
Il tag <font> è ancora supportato?
I browser lo disegnano ancora perché le pagine molto vecchie continuino a funzionare, ma in HTML è obsoleto e i validatori lo segnalano come errore. Usa invece color in CSS.
Come cambio il colore di una sola parola?
Racchiudi la parola in uno <span> e dagli un colore: This is <span style="color: #dc2626;">red</span>. Usa <strong> o <em> al posto di <span> se la parola è anche importante o enfatizzata.
Perché il mio link non cambia colore quando imposto color sul genitore?
I link hanno un loro colore dal foglio di stile del browser, quindi non ereditano quello del genitore. Impostalo sul link stesso (a { color: #2563eb; }) oppure usa a { color: inherit; } per seguire il genitore.
In CSS si scrive font-color o color?
Si scrive color. Non esiste una proprietà font-color o text-color; il browser le ignora.