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
Standardmäßig werden Breite und Höhe der Kopfzeil...
Hintergrund Ich habe mit meinen Klassenkameraden ...
In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...
Dieser Artikel stellt hauptsächlich ein Beispiel ...
Das Team ersetzte den neuen Rahmen. Alle neuen Un...
Vorwort Manchmal verschiebt sich der Inhalt des E...
Bei der Replikation werden die DDL- und DML-Opera...
Inhaltsverzeichnis 1. Initialisierungsstruktur 2....
mysql ruft alle Daten oder Monate in einem Zeitra...
Vor kurzem habe ich einen solchen Effekt implemen...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Hintergrund Verwenden Sie Idea mit Docker, um den...
Inhaltsverzeichnis Vorwort 1. Installation 1. Dow...
Inhaltsverzeichnis Vorwort Begründung Verfahren 1...
Code und Beispiele direkt posten #Schreiben Sie K...