Comment définir une couleur de fond
background-color remplit la boîte d'un élément, padding et zone sous la bordure compris, avec une couleur. Elle accepte n'importe quelle couleur CSS.
La couleur de la page est définie sur body, la carte et l'avertissement sur leurs div, et le surlignage sur un élément inline. Les éléments inline n'ont de fond que derrière leur texte, ligne par ligne.
Couleur de fond de toute la page
Placez background-color sur body. Si l'élément <html> n'a pas de fond propre, le navigateur peint le fond de body sur toute la fenêtre, même là où le contenu de body s'arrête :
body {
background-color: #111827;
color: #f9fafb; /* change the text color too, for contrast */
}
L'ancienne méthode HTML était <body bgcolor="black">. L'attribut bgcolor est obsolète sur tous les éléments, utilisez donc le CSS. Les navigateurs le respectent encore pour les anciennes pages, ce qui explique pourquoi il semble fonctionner.
Fonds transparents
Chaque élément commence avec background-color: transparent, vous voyez donc le parent derrière lui. Pour teinter une boîte tout en voyant à travers, utilisez une couleur avec un canal alpha :
opacity: 0.5 laisserait aussi voir les rayures, mais il estompe aussi le texte. Pour un fond transparent avec un texte opaque, utilisez une couleur avec alpha. La page des couleurs liste toutes les façons de l'écrire.
Où la couleur est peinte
Par défaut, le fond s'étend jusqu'au bord extérieur de la bordure (il se voit donc à travers une bordure en tirets ou semi-transparente). background-clip change cela :
Dans la première boîte, l'ambre apparaît entre les tirets. Dans la deuxième, il s'arrête au bord intérieur de la bordure, et dans la troisième seule la zone de contenu est colorée. La margin n'est jamais peinte : elle est toujours transparente.
Lignes de tableau alternées
Un fond sur une ligne sur deux rend les grands tableaux plus faciles à parcourir :
background-color ou le raccourci background
background définit toutes les propriétés de fond à la fois. Chaque partie omise revient à sa valeur par défaut, ce qui surprend souvent :
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background: #111827; /* also resets background-image to none */
}
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background-color: #111827; /* only the color; the gradient stays */
}
Utilisez background-color quand vous ne voulez que la couleur. Utilisez background quand vous définissez tout le fond au même endroit, souvent une couleur plus une image ; voir background-image.
Accessibilité : l'associer à la couleur du texte
Une couleur de fond n'est lisible qu'à côté de sa couleur de texte. Chaque fois que vous en définissez une, vérifiez l'autre : les WCAG demandent un rapport de contraste d'au moins 4,5:1 pour le texte courant. Un fond sombre demande un texte clair défini explicitement, car le texte garde la couleur sombre dont il hérite.
Erreurs courantes
- Utiliser
bgcolor. Il est obsolète. Utilisezbackground-color. - Utiliser
opacitypour un fond transparent. Le contenu s'estompe aussi. Utilisez une couleur avec alpha. - Un raccourci
backgroundaprès unbackground-image. Il réinitialise l'image. Écrivez plutôtbackground-color. - S'attendre à ce que la margin affiche la couleur. La margin est en dehors du fond. Utilisez le padding pour un espace coloré.
- Un fond sombre avec le texte par défaut. Définissez aussi une
colorclaire.
Questions fréquentes
Comment changer la couleur de fond en HTML ?
Utilisez la propriété CSS background-color. Pour toute la page : body { background-color: #f3f4f6; }. Pour un élément : <div style="background-color: #fef3c7;">.
L'attribut bgcolor est-il encore valide en HTML ?
Non. L'attribut bgcolor sur <body>, <table> et <td> est obsolète en HTML5. Les navigateurs l'affichent encore pour les anciennes pages, mais la bonne méthode est background-color en CSS.
Comment rendre une couleur de fond transparente ?
Utilisez une couleur avec un canal alpha, comme background-color: rgb(37 99 235 / 20%);. Contrairement à opacity, le texte à l'intérieur reste entièrement visible.
Quelle est la différence entre background et background-color ?
background-color ne définit que la couleur. background est un raccourci pour toutes les propriétés de fond (couleur, image, position, taille, répétition, attachement, origin et clip), donc background: red; remet aussi toute image de fond à none.
Pourquoi la couleur de fond de body remplit-elle toute la fenêtre ?
Quand l'élément <html> n'a pas de fond propre, le navigateur peint le fond de body sur tout le canevas, même au-delà de la boîte de body. Donnez un fond à html si vous voulez que les deux diffèrent.