Ich habe dies verwendet, um meine Fußzeile am unteren Rand anzubringen, und es hat funktioniert:
HTML
<body>
<div class="allButFooter">
<!-- Your page's content goes here, including header, nav, aside, everything -->
</div>
<footer>
<!-- Footer content -->
</footer>
</body>
Das ist die einzige Änderung, die Sie im HTML-Code vornehmen müssen. div
mit dem "allButFooter"
Klasse. Ich habe das mit allen Seiten gemacht, mit denen, die so kurz waren, dass ich wusste, dass die Fußzeile nicht unten bleiben würde, und auch mit Seiten, die so lang waren, dass ich bereits wusste, dass ich scrollen musste. Ich habe dies getan, um zu sehen, dass es auch dann funktioniert, wenn der Inhalt einer Seite dynamisch ist.
CSS
.allButFooter {
min-height: calc(100vh - 40px);
}
Le site "allButFooter"
Klasse hat eine min-height
Wert, der von der Höhe des Ansichtsfensters abhängt ( 100vh
bedeutet 100% der Höhe des Ansichtsfensters) und die Höhe der Fußzeile, von der ich bereits wusste, dass sie 40px
.
Das ist alles, was ich getan habe, und es hat bei mir perfekt funktioniert. Ich habe es nicht in allen Browsern ausprobiert, nur in Firefox, Chrome und Edge, und die Ergebnisse waren so, wie ich wollte. Die Fußzeile klebt am unteren Rand, und Sie müssen nicht mit z-index, Position oder anderen Eigenschaften durcheinander bringen. Die Position jedes Elements in meinem Dokument war die Standardposition, ich habe sie nicht auf absolut oder fixiert oder so geändert.
Arbeiten mit responsivem Design
Hier ist etwas, das ich gerne ausräumen würde. Diese Lösung, mit der gleichen Fußzeile, die 40px hoch war, funktionierte nicht wie erwartet, wenn ich in einem responsiven Design mit Twitter-Bootstrap
. Ich musste den Wert, den ich in der Funktion subtrahierte, ändern:
.allButFooter {
min-height: calc(100vh - 95px);
}
Dies ist wahrscheinlich darauf zurückzuführen, dass Twitter-Bootstrap
verfügt über eigene Ränder und Abstände, deshalb musste ich diesen Wert anpassen.
54 Stimmen
Es ist erstaunlich, dass dies ein so häufiges Problem ist. Vielleicht werden wir in CSS4 Implementierungen von "make a nav bar" und "make a footer" sehen, da diese so häufig versucht werden.
1 Stimmen
Es wird nie CSS4 geben (CSS3 wird nur wachsen). Ich denke, dies wird mit der Implementierung von
flexbox
.6 Stimmen
Ein ausgezeichneter Artikel zu diesem Thema: css-tricks.com/couple-takes-sticky-footer
0 Stimmen
expertsuggestion.com/css-snippets/8