Was ist „Sticky Footer“ Der sogenannte „Sticky Footer“ ist kein neues Frontend-Konzept und keine neue Technologie. Er beschreibt einen Webseiten-Effekt: Wenn der Seiteninhalt nicht lang genug ist, wird der Footer am unteren Rand des Browserfensters fixiert; wenn der Inhalt lang genug ist, wird der Footer am unteren Rand der Seite fixiert. Wenn der Inhalt der Webseite jedoch nicht lang genug ist, bleibt die untere Fußzeile am unteren Rand des Browserfensters. Schauen wir uns das folgende Beispiel an. Der Code lautet wie folgt <div Klasse="Header"> </div> <div Klasse="Haupt"> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> </div> <div Klasse="Fußzeile"> <i class="fa fa-copyright" aria-hidden="true"></i> <div>unten</div> </div> .header { Hintergrundfarbe: #3498DB; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; Farbe: #fff; } .hauptsächlich { Überlauf: automatisch; Box-Größe: Rahmenbox; } .Fußzeile { Hintergrundfarbe: #ECF0F1; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; } Aufmerksame Leser dürften das Problem entdeckt haben. Die Position der Fußzeile ändert sich automatisch mit der Höhe des Hauptinhalts. Wenn der Hauptinhalt kleiner als die Ansichtsfensterhöhe ist, wird die Fußzeile nicht unten befestigt. Wie lässt sich dieses Problem also lösen? negative Marge <div Klasse="Haupt"> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> </div> <div Klasse="Fußzeile"> <i class="fa fa-copyright" aria-hidden="true"></i> <div>unten</div> </div> html, Körper { Höhe: 100%; } .header{ Hintergrundfarbe: #3498DB; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; Farbe: #fff; Position: fest; Breite: 100 %; } .hauptsächlich { Mindesthöhe: 100 %; Überlauf: automatisch; Box-Größe: Rahmenbox; Polsterung unten: 50px; Polsterung oben: 50px; Rand unten: -50px; } .Fußzeile { Hintergrundfarbe: #ECF0F1; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; } Lösungen mit fester Höhe Verwenden Sie die folgenden Eigenschaften
calc() wurde in CSS3 eingeführt und ermöglicht Ihnen, Berechnungen beim Deklarieren von CSS-Eigenschaftswerten durchzuführen. Es kann in einigen numerischen Situationen verwendet werden. Weitere Einzelheiten finden Sie hier bei MDN. vh (Ansichtsfensterhöhe): Wie Sie sich vorstellen können, stellt dies die Höhe des Ansichtsfensters dar. Detaillierte Informationen und Kompatibilität finden Sie hier: caniuse Ändern Sie den obigen Code wie folgt .hauptsächlich { Mindesthöhe: berechnet (100vh – 50px – 50px); } Dies erreicht unser Erwartungsgemäß, hat jedoch den Nachteil, dass wir die Höhe der Kopf- und Fußzeile jedes Mal neu berechnen müssen. Dies ist natürlich nicht perfekt. Wenn die DOM-Struktur mehr Ebenen hat, muss mehr Inhalt berechnet werden. Absolute Ich glaube, jeder ist mit absoluten Elementen vertraut, daher werde ich hier nicht ins Detail gehen. Achten Sie nur darauf: Auf welcher Grundlage wird die Position eines absoluten Elements berechnet und positioniert? <div Klasse="Header"> Kopfbereich <div Klasse="Haupt"> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> </div> <div Klasse="Fußzeile"> <i class="fa fa-copyright" aria-hidden="true"></i> <div>unten</div> </div> html{ Position: relativ; Mindesthöhe: 100 %; } Körper{ Rand unten: 50px; } .header { Hintergrundfarbe: #3498DB; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; Farbe: #fff; } .hauptsächlich { Überlauf: automatisch; } .Fußzeile { Position: absolut; unten: 0; Breite: 100 %; Hintergrundfarbe: #ECF0F1; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; } Der Code ist sehr einfach, hier ist die Hauptpositionsanwendung: 1 Standardmäßig, wenn ein Element auf position:absolute gesetzt ist und das Vorgängerelement nicht position: absolute oder fixed oder relative gesetzt hat , es ist standardmäßig relativ zum anfänglichen enthaltenden Block. 2 Welche Initialisierer enthalten Blöcke?
Dies ist die W3C-Einführung in den umschließenden Block. Die allgemeine Bedeutung dieses Absatzes ist, dass das Stammelement (Dokument) der standardmäßige anfängliche umschließende Block ist und die Größe seines Initialisierungsblocks der Größe des Ansichtsfensters entspricht. Nachdem wir diese Konzepte verstanden haben, schauen wir uns den obigen Code an. Alles ist auf den ersten Blick klar! html{ Position: relativ; Mindesthöhe: 100 %; } Körper{ Rand unten: 50px; }
Flexbox Flexbox ist die perfekte Lösung. Dies lässt sich mit nur wenigen Zeilen CSS erreichen und erfordert keine Berechnungen oder das Hinzufügen zusätzlicher HTML-Elemente wie oben. Ändern Sie den Code wie folgt: <div Klasse="Container"> <div Klasse="Header"> </div> <div Klasse="Haupt"> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> <p>Mittelteil</p> </div> <div Klasse="Fußzeile"> <i class="fa fa-copyright" aria-hidden="true"></i> <div>unten</div> </div> </div> html, Körper { Höhe: 100%; } .container { Anzeige: Flex; Flex-Richtung: Spalte; Mindesthöhe: 100 %; } .header { Hintergrundfarbe: #3498DB; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; Farbe: #fff; } .hauptsächlich { Überlauf: automatisch; Box-Größe: Rahmenbox; biegen: 1; } .Fußzeile { Hintergrundfarbe: #ECF0F1; Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; } Der endgültige Effekt ist wie folgt: „Negativ = Rand“, „Feste Breite“ und „Absolut“ basieren alle auf einer festen unteren Höhe. Es wird grundsätzlich empfohlen, die absoluten und flexiblen Implementierungen zu verwenden. Welche Implementierung konkret verwendet werden soll, hängt vom jeweiligen Szenario ab. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Der Unterschied zwischen HTML-Frame, Iframe und Frameset
>>: Umfassende Zusammenfassung zu MySQL GTID
Die Installation von MySQL 8.0.12 dauerte zwei Ta...
Inhaltsverzeichnis Kurze Umfrage Langfristige Abf...
Beginnen wir die Diskussion mit einer häufig gest...
Dieser Artikel enthält das ausführliche Tutorial ...
Dieser Artikel stellt vor, wie Sie durch Instanzi...
Formulare sind eine wichtige externe Form zur Imp...
Ändern Sie die IP-Adresse der virtuellen Maschine...
0. Vorbereitende Maßnahmen Deaktivieren Sie den s...
Szenario: Eine Laradock-Entwicklungsumgebung (php...
Im vorherigen Blog hat Xiao Xiong die Methoden ve...
Ohne weitere Umschweife Beginnen Sie mit der Aufz...
Vorwort In diesem Artikel wird hauptsächlich ein ...
Einführung Derzeit ist k8s sehr beliebt und ich h...
Dieser Artikel beschreibt, wie Sie einen sekundär...
In diesem Artikelbeispiel wird der spezifische Co...