Nehmen Sie dieses triviale Beispiel, und öffnen Sie es:HTML/CSS: Warum dehnt sich der Körper nicht auf seinen Inhalt aus?
<html>
<body style="background-image:url(http://upload.wikimedia.org/wikipedia/commons/2/21/Mandel_zoom_00_mandelbrot_set.jpg);background-repeat: no-repeat; background-position: top center;">
<div style="width: 8000px; border: 3px solid red;">Demo</div>
</body>
</html>
Die Seite gemacht wird, so dass der Körper ein Top-zentrierte Hintergrundbild und ein enthalten Element, das Fenstergrenzen überläuft, so gibt es horizontale Scrollen ist (falls Sie eine haben Monitor breiter als 8000px dann bist du wirklich cool, bitte mach das Fenster kleiner und erfrische).
Das Problem ist, aus irgendeinem Grund, dass die <body>
nicht die <div>
enthalten nicht dehnen. Es bleibt nur die gleiche Breite wie das Ansichtsfenster und der <div>
überläuft es. Dadurch wird der Hintergrund an der falschen Stelle zentriert und auf die Größe des Ansichtsfensters zugeschnitten. Ziemlich hässlich, wenn Sie nach rechts scrollen.
Ich habe bereits eine Lösung für dieses Problem gefunden, aber ich frage mich WARUM das ist so? Es scheint auch in allen Browsern konsistent zu sein. Aber meiner Meinung nach ist das ziemlich kontraintuitiv und grundsätzlich einfach falsch. Das Containerelement sollte groß genug sein, um die Kinder aufzunehmen - es sei denn, sie sind absolut positioniert. In diesem Fall nehmen sie nicht an den Layoutberechnungen teil.
Hey. Zurück zu diesem 2 Jahre später, und bin auf der Suche nach der gleichen Lösung, die Sie sagen, dass Sie gefunden haben. Bobinces Antwort hilft nicht sehr, sehr .. (Ist Float die einzige Option?) – SoreThumb
Ich benutze immer noch float. Schau es dir hier an: http://www.drowtales.com –