Menu

Couleur du texte en HTML : changer la couleur avec CSS

La balise <font color> est obsolète ; la couleur du texte en HTML se définit avec la propriété CSS color. Découvrez comment colorer toute une page, un mot, un lien ou un titre, avec des couleurs nommées, en hexadécimal ou en rgb, et comment garder un texte lisible.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

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 :

FormatExempleRemarques
Nomméecolor: tomato;148 couleurs nommées, pratiques pour des tests rapides
Hexadécimalcolor: #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-color ou text-color. La propriété est color.
  • Utiliser la balise <font>. Elle est obsolète ; utilisez le CSS.
  • Croire que les liens héritent. Définissez a { color: ... } ou color: 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 opacity pour é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.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER