Comment changer la couleur du texte en HTML
Utilisez la propriété CSS color. Elle définit la couleur du texte d'un élément, et tous les éléments qu'il contient héritent de la même couleur, sauf s'ils définissent la leur.
La propriété s'appelle color, pas font-color ni text-color. Ces noms n'existent pas en CSS et sont ignorés sans avertissement.
Pourquoi pas la balise font
Les anciens tutoriels montrent <font color="red">. Cette balise a été retirée du HTML il y a des années : les validateurs la signalent comme une erreur, et elle mélange le style au balisage, si bien que changer une couleur oblige à modifier chaque balise à la main. Les navigateurs l'affichent encore par compatibilité, et c'est la seule raison pour laquelle elle semble fonctionner.
<!-- 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>
Les façons d'écrire la couleur
color accepte tous les formats de couleur CSS. Les quatre plus courants :
| Format | Exemple | Remarques |
|---|---|---|
| Nommée | color: tomato; | 148 couleurs nommées, pratiques pour des tests rapides |
| Hexadécimal | color: #2563eb; | Le plus courant dans les maquettes |
| rgb() | color: rgb(37 99 235); | Rouge, vert et bleu de 0 à 255 |
| hsl() | color: hsl(221 83% 53%); | Teinte, saturation, luminosité : facile à éclaircir ou assombrir |
L'hexadécimal, rgb() et hsl() acceptent un canal alpha pour un texte semi-transparent, comme #2563eb80 ou rgb(37 99 235 / 50%). La page des couleurs CSS explique chaque format.
Colorer toute une page, un titre ou une section
Définissez la couleur une fois sur body et laissez l'héritage faire le reste, puis surchargez là où c'est nécessaire :
Un quasi-noir doux comme #111827 ou #374151 sur fond blanc est plus reposant pour les yeux qu'un #000000 pur, et se lit toujours comme du noir.
Couleurs des liens
Les liens sont l'exception à l'héritage : le navigateur leur donne leur propre bleu (et du violet une fois visités), donc une couleur définie sur le parent ne les atteint pas. Définissez-la sur le lien, ou demandez au lien d'hériter :
:hover, :visited et :focus-visible permettent de changer la couleur selon l'état ; la page hover les présente. Quand un lien a la même couleur que le texte autour, gardez son soulignement pour qu'il reste reconnaissable comme lien.
Rendre le texte lisible : le contraste
La couleur du texte n'est que la moitié de la paire ; le fond est l'autre moitié. Les WCAG demandent un rapport de contraste d'au moins 4,5:1 pour le texte normal et 3:1 pour le grand texte (environ 24px, ou 19px en gras).
Le texte gris clair façon placeholder est l'échec le plus fréquent. Les outils de développement de Chrome et Firefox affichent le rapport de contraste quand vous inspectez une couleur de texte.
currentColor : réutiliser la couleur du texte
currentColor est un mot-clé égal à la valeur color de l'élément. Les bordures, les contours et les icônes SVG inline peuvent l'utiliser : un seul changement de color recolore alors le texte et sa décoration ensemble.
Erreurs courantes
- Écrire
font-coloroutext-color. La propriété estcolor. - Utiliser la balise
<font>. Elle est obsolète ; utilisez le CSS. - Croire que les liens héritent. Définissez
a { color: ... }oucolor: inherit. - La couleur comme seul signal. « Les champs en rouge sont obligatoires » ne fonctionne pas pour les lecteurs qui ne distinguent pas le rouge. Ajoutez du texte ou une icône.
- Un texte gris peu contrasté. Vérifiez le rapport : 4,5:1 ou plus pour le texte courant.
- Utiliser
opacitypour éclaircir un texte. Cela estompe tout l'élément, fond et enfants compris. Utilisez plutôt une couleur plus claire ou une couleur avec alpha.
Questions fréquentes
Comment changer la couleur du texte en HTML ?
Utilisez la propriété CSS color, dans une feuille de style ou un attribut style : <p style="color: #2563eb;">Blue text</p>. L'ancienne balise <font color> est obsolète.
La balise <font> est-elle encore prise en charge ?
Les navigateurs l'affichent encore pour que les très vieilles pages continuent de fonctionner, mais elle est obsolète en HTML et les validateurs la signalent comme une erreur. Utilisez plutôt color en CSS.
Comment changer la couleur d'un seul mot ?
Entourez le mot d'un <span> et donnez-lui une couleur : This is <span style="color: #dc2626;">red</span>. Utilisez <strong> ou <em> au lieu de <span> si le mot est aussi important ou accentué.
Pourquoi mon lien ne change-t-il pas de couleur quand je la définis sur le parent ?
Les liens ont leur propre couleur, issue de la feuille de style du navigateur, et n'héritent donc pas de celle du parent. Définissez-la sur le lien lui-même (a { color: #2563eb; }) ou utilisez a { color: inherit; } pour suivre le parent.
En CSS, est-ce font-color ou color ?
C'est color. Il n'existe pas de propriété font-color ni text-color ; le navigateur les ignore.