Nach über 20 Antworten scheint keiner den Faktor erwähnt zu haben, der meiner Meinung nach am wichtigsten ist - der Aufschlag.
Nachdem ich praktisch jede Antwort in dieser Frage und einige andere ausprobiert habe, habe ich mein Markup wie folgt umstrukturiert:
<body>
<div class="section1">
<nav>
</nav>
...
</div>
<div class="section2">
</div>
</body>
Im Wesentlichen werden zwei verschiedene Außenbehälter benötigt. Der erste Container ist für die Aufnahme der Navigationsleiste bestimmt et die die Hintergrundfarbe/das Hintergrundbild bis zur Höhe des Browsers ausdehnt, und die zweite, die alles "below the fold" enthält - einschließlich der zweiten Hintergrundfarbe/des zweiten Hintergrundbildes.
Bei dieser Lösung kann sich der Hintergrund des ersten Containers bis zum Boden ausdehnen, während der zweite Container so viel Platz hat, wie er braucht.
Von diesem Punkt an ist das einzige CSS, das benötigt wird, um das von mir und der ursprünglichen Frage gewünschte Ergebnis zu erzielen, das folgende:
body {
height: 100%;
}
.section1 {
height: 100%;
background: black; /* for demo purposes */
}
.section2 {
background: white; /* for demo purposes */
}
4 Stimmen
CSS3 Viewport-Prozentsatz-Längen