Nur eine dieser seltsamen Eigenheiten von CSS: Hintergrund auf <body>

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Sie möchten also den Hintergrund Ihrer Website rot machen, was? Wahrscheinlich würden Sie das in Ihr CSS schreiben

body {
  background: red;
}

Fertig!

Check out this Pen!

Sie gehen Ihren Geschäften nach und dann passiert eines Tages plötzlich das

Check out this Pen!

Was zum Teufel? Warum ist das Rot so abgeschnitten? Ich habe die Hintergrundfarbe des Body auf Rot gesetzt?

Das haben Sie, aber die Tatsache, dass diese rote Farbe den Hintergrund flutet, ist nur eine seltsame Anomalie von CSS. Das Body-Element ist nicht wirklich so hoch wie das Browserfenster. Es ist nur so hoch wie der Inhalt darin, genau wie ein Div oder irgendetwas anderes.

Siehe

Wenn das HTML-Element keinen Hintergrund hat, bedeckt der Body-Hintergrund die Seite. Wenn das HTML-Element einen Hintergrund hat, verhält sich der Body-Hintergrund wie jedes andere Element.

Irgendwann wurde dem html-Element eine background-color zugewiesen.

Vielleicht verwenden Sie normalize.css 2.1.1, das das Setzen des Hintergrunds auf Weiß für das html-Element enthielt, um "zu verhindern, dass die Hintergrundfarbe des Systemfarbschemas in Firefox, IE und Opera verwendet wird." Dies wurde inzwischen rückgängig gemacht, vermutlich weil es dieses Problem zu weit verbreitet verursachte.

Um es zu "reparieren", entfernen Sie einfach den Hintergrund im html-Element oder verschieben Sie alles, was Sie "fluten" möchten, immer in das html-Element, da sein Verhalten konsistent ist.