Sticky-Footer

Ein Sticky-Footer-Muster ist eines, bei dem der Footer Ihrer Seite am unteren Rand des Viewports "haftet", wenn der Inhalt kürzer ist als die Höhe des Viewports. Wir werden uns in diesem Rezept ein paar Techniken ansehen, um einen solchen zu erstellen.

Anforderungen

Das Sticky-Footer-Muster muss die folgenden Anforderungen erfüllen:

  • Der Footer haftet am unteren Rand des Viewports, wenn der Inhalt kurz ist.
  • Wenn der Inhalt der Seite den unteren Rand des Viewports überschreitet, wird der Footer nach unten verschoben und sitzt immer wie gewohnt unter dem Inhalt.

Das Rezept

Klicken Sie im Codeblock unten auf "Abspielen", um das Beispiel im MDN Playground zu bearbeiten:

html
css

Hinweis: In diesem Beispiel und im folgenden Beispiel verwenden wir einen Wrapper mit min-height: 100%. Sie können dies auch für eine vollständige Seite erreichen, indem Sie eine min-height von 100vh auf dem <body> setzen und diese dann als Ihren Grid-Container verwenden.

Getroffene Entscheidungen

Im obigen Beispiel erreichen wir den Sticky-Footer mit CSS Grid Layout. Der .wrapper hat eine Mindesthöhe von 100%, was bedeutet, dass er so hoch ist wie der Container, in dem er sich befindet. Wir erstellen dann ein Grid-Layout mit einer einzigen Spalte und drei Zeilen, eine Zeile für jeden Teil unseres Layouts.

Grid Auto-Platzierung platziert unsere Elemente in der Quellreihenfolge, sodass der Header in die erste automatisch sized Spur geht, der Hauptinhalt in die 1fr-Spur und der Footer in die letzte automatisch sized Spur. Die 1fr-Spur nimmt den gesamten verfügbaren Raum ein und wächst daher, um die Lücke zu füllen.

Alternative Methode

Sie können auch Flexbox verwenden, um einen Sticky-Footer zu erstellen.

html
css

Das Flexbox-Beispiel beginnt auf die gleiche Weise, aber wir verwenden display:flex statt display:grid auf dem .wrapper; wir setzen außerdem flex-direction auf column. Dann setzen wir unseren Hauptinhalt auf flex-grow: 1 und die anderen beiden Elemente auf flex-shrink: 0 — dies verhindert, dass sie kleiner werden, wenn Inhalte den Hauptbereich füllen.

Ressourcen auf MDN