Menu

CSS Hintergrundfarbe: background-color für Seite und Element

background-color füllt die Box eines Elements mit einer Farbe. Hier lernst du, wie du die Hintergrundfarbe einer ganzen Seite, eines div, einer Tabellenzeile oder eines einzelnen Wortes setzt, wie Transparenz funktioniert, warum bgcolor veraltet ist und wie sich background-color von der Kurzschreibweise background unterscheidet.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

So setzt du eine Hintergrundfarbe

background-color füllt die Box eines Elements, einschließlich des Paddings und der Fläche unter dem Rahmen, mit einer Farbe. Es akzeptiert jede CSS-Farbe.

Die Seitenfarbe steht an body, Karte und Hinweis an ihren divs und die Hervorhebung an einem Inline-Element. Inline-Elemente bekommen einen Hintergrund nur hinter ihrem Text, Zeile für Zeile.

Hintergrundfarbe der ganzen Seite

Setz background-color an body. Hat das Element <html> keinen eigenen Hintergrund, malt der Browser den Hintergrund von body über das ganze Fenster, auch dort, wo der Inhalt von body endet:

body {
  background-color: #111827;
  color: #f9fafb; /* change the text color too, for contrast */
}

Der alte HTML-Weg war <body bgcolor="black">. Das Attribut bgcolor ist an jedem Element veraltet, also nimm CSS. Browser beachten es für alte Seiten noch, und deshalb scheint es zu funktionieren.

Transparente Hintergründe

Jedes Element startet mit background-color: transparent, du siehst also das Elternelement dahinter. Um eine Box einzufärben und trotzdem hindurchzusehen, nimmst du eine Farbe mit Alphakanal:

opacity: 0.5 würde die Streifen auch durchscheinen lassen, blendet aber den Text mit aus. Für einen durchsichtigen Hintergrund mit deckendem Text nimmst du eine Farbe mit Alpha. Die Seite zu Farben zeigt alle Schreibweisen dafür.

Wo die Farbe gemalt wird

Standardmäßig reicht der Hintergrund bis zur Außenkante des Rahmens (er scheint also durch einen gestrichelten oder halbtransparenten Rahmen durch). background-clip ändert das:

In der ersten Box ist das Bernstein zwischen den Strichen zu sehen. In der zweiten endet es an der Innenkante des Rahmens, und in der dritten ist nur der Inhaltsbereich gefärbt. Margin wird nie bemalt: Es ist immer transparent.

Gestreifte Tabellenzeilen

Ein Hintergrund an jeder zweiten Zeile macht breite Tabellen leichter lesbar:

background-color vs. die Kurzschreibweise background

background setzt alle Hintergrund-Eigenschaften auf einmal. Jeder Teil, den du weglässt, fällt auf seinen Standardwert zurück, und das überrascht viele:

.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 */
}

Nimm background-color, wenn du nur die Farbe meinst. Nimm background, wenn du den ganzen Hintergrund an einer Stelle setzt, oft eine Farbe plus ein Bild; siehe Hintergrundbild.

Barrierefreiheit: mit der Textfarbe kombinieren

Eine Hintergrundfarbe ist nur zusammen mit ihrer Textfarbe lesbar. Wann immer du eine setzt, prüf die andere: Die WCAG verlangen für Fließtext ein Kontrastverhältnis von mindestens 4,5:1. Dunkle Hintergründe brauchen explizit gesetzten hellen Text, weil Text die dunkle Farbe behält, die er erbt.

Häufige Fehler

  • bgcolor verwenden. Es ist veraltet. Nimm background-color.
  • opacity für einen durchsichtigen Hintergrund nutzen. Es blendet auch den Inhalt aus. Nimm eine Farbe mit Alpha.
  • Eine background-Kurzschreibweise nach einem background-image. Sie setzt das Bild zurück. Schreib stattdessen background-color.
  • Erwarten, dass Margin die Farbe zeigt. Margin liegt außerhalb des Hintergrunds. Für farbigen Abstand nimmst du Padding.
  • Ein dunkler Hintergrund mit Standardtext. Setz zusätzlich eine helle color.

Häufig gestellte Fragen

Wie ändere ich die Hintergrundfarbe in HTML?

Mit der CSS-Eigenschaft background-color. Für die ganze Seite: body { background-color: #f3f4f6; }. Für ein einzelnes Element: <div style="background-color: #fef3c7;">.

Ist bgcolor in HTML noch gültig?

Nein. Das Attribut bgcolor an <body>, <table> und <td> ist in HTML5 veraltet. Browser stellen es für alte Seiten noch dar, aber der richtige Weg ist background-color in CSS.

Wie mache ich eine Hintergrundfarbe transparent?

Nimm eine Farbe mit Alphakanal, etwa background-color: rgb(37 99 235 / 20%);. Anders als bei opacity bleibt der Text darin voll sichtbar.

Was ist der Unterschied zwischen background und background-color?

background-color setzt nur die Farbe. background ist eine Kurzschreibweise für alle Hintergrund-Eigenschaften (Farbe, Bild, Position, Größe, Wiederholung, attachment, origin und clip), also setzt background: red; auch ein vorhandenes Hintergrundbild auf none zurück.

Warum füllt die Hintergrundfarbe von body das ganze Fenster?

Hat das Element <html> keinen eigenen Hintergrund, malt der Browser den Hintergrund von body über die gesamte Fläche, sogar über die Box von body hinaus. Gib html einen Hintergrund, wenn sich die beiden unterscheiden sollen.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S