Diese in der Tat confusi ist ng, aber es ist in der CSS-2.1-Spezifikation, Klausel 14.2 Background angegeben: Wenn der berechnete Wert ist transparent
und der berechnete Wert von background-image
ist none
für das Element html
(wie Dinge sind standardmäßig), müssen Browser stattdessen den berechneten Wert verwenden der Hintergrundeigenschaften für das Element body
und darf keinen Hintergrund für body
(d. h mach es transparent). Das heißt, body
Hintergrund magisch dreht sich um html
Hintergrund, wenn html
fehlt ein eigener Hintergrund - und dies betrifft nur die Hintergrundeigenschaften, nicht die wahre Höhe des Elements body
.
Ich habe keine Gründe für diese seltsame Regel gesehen, die eine Art "umgekehrte Vererbung" vorschreibt. Aber es ist klar in CSS 2.1 spezifiziert und von Browsern angewendet.
Wie in anderen Antworten, können Sie Ihre Inhalte einen Hintergrund bestimmter Höhe haben machen können entweder durch einen Hintergrund auf html
Einstellung (so dass body
Hintergrund wirklich nur auf body
angewandt wird) oder durch Verwendung von Wrapper-Elemente innerhalb body
und Höheneinstellung darauf (da die Sonderregel nur für body
gilt).
Dank Anne van Kesteren, die auf die CSS-Spezifikation darauf, wenn ich dazu in der WHATWG Mailing-Liste gefragt. (Ich dachte, ich CSS wusste 2.1 von Herzen, aber wirklich nicht. ☺)
Ich verstehe nicht, warum dies Stimmen Aufstehen? Ich verstehe die Frage auch nicht wirklich. Du hast gefragt, warum es nicht die ganze Seite abdeckt, aber du hast das selbst beantwortet, indem du gesagt hast, du hättest ihm eine Höhe von 100px gegeben? Es macht genau das, was Sie ihm gesagt haben? Sie könnten die Hintergrundfarbe auf das HTML-Tag setzen, aber @ashnisshahs Antwort unten wird (sollte) auf Ihre Bedürfnisse eingehen. – seemly
@seemly: Es gab eine ungültige Bearbeitung der Frage, Sie können Fragengeschichte sehen, das OP fragt, warum Hintergrund tatsächlich auf der ganzen Seite angewandt wurde. –
@seemly, versuchen Sie und verstehen Sie die Frage. Er möchte fragen, warum die Bg-Farbe auf die ganze Seite angewendet wird. Ehrlich gesagt, antwortet aashnisshah's nicht auf die Frage und es weicht von der Antwort ab, die die OP-Leute wünschen. – AnaMaria