Heim > Web-Frontend > CSS-Tutorial > Warum funktioniert „position: sticky' in meiner Fußzeile nicht, wenn die Höhe des Seitenkörpers und das #main-Element angegeben sind?

Warum funktioniert „position: sticky' in meiner Fußzeile nicht, wenn die Höhe des Seitenkörpers und das #main-Element angegeben sind?

Barbara Streisand
Freigeben: 2024-11-17 06:58:03
Original
948 Leute haben es durchsucht

Why is `position: sticky` not working on my footer when the height of the page body and the #main element are specified?

Position: Sticky funktioniert nicht, wenn die Höhe angegeben ist

Problem:

Benutzer stoßen auf ein Problem wo die Fußzeile, die als #footerNav bezeichnet wird, sich nicht an die Position hält: Sticky-Verhalten, wenn eine Höheneigenschaft sowohl für den Seitenhauptteil als auch für #main festgelegt ist Element. Die Fußzeile bleibt statisch, anstatt am oberen Rand des Ansichtsfensters zu scrollen.

Lösung:

Das Problem entsteht durch den Überlauf von Inhalten, der durch die Höheneigenschaften verursacht wird. position: sticky ist so konzipiert, dass es nur dann aktiv wird, wenn sein enthaltender Block einen bestimmten Schwellenwert erreicht. In diesem Fall wird body { height: 100%; } erzeugt eine Situation, in der die Fußzeile sofort das Ende ihres enthaltenden Blocks erreicht, wodurch verhindert wird, dass position: sticky jemals aktiviert wird.

Erklärung:

Gemäß der Definition von Position : Sticky, die Sticky-Position wird angewendet, wenn das Element einen angegebenen Schwellenwert innerhalb seines enthaltenden Blocks überschreitet. Der enthaltende Block ist in diesem Fall der Körper, und da body { height: 100 % } festgelegt ist, ist die Höhe des Körpers auf das Ansichtsfenster beschränkt.

Wenn #main { height: 92 % } angegeben ist 92 % der verfügbaren Höhe werden #main zugewiesen, sodass nur 8 % für #footerNav übrig bleiben. Da sich #footerNav bereits am unteren Rand seines enthaltenden Blocks (des Körpers) befindet, kann es nicht über die Ansichtsfenstergrenze hinaus scrollen und Position: Sticky aktivieren.

Lösung:

Um das Problem zu beheben, stellen Sie sicher, dass der Inhalt den enthaltenden Block nicht überfüllt. Dies kann erreicht werden, indem die Höheneigenschaften von body und #main entfernt werden, sodass der Inhalt auf natürliche Weise innerhalb des Ansichtsfensters fließen kann, ohne dass es zu einem Überlauf kommt.

Zusätzliche Hinweise:

  • Die Angabe der Höhe als Prozentsatz, wie z. B. vh, ist immer noch nicht ratsam, da dies zum gleichen Problem führen kann.
  • Das Problem ist in Firefox aufgetreten 61 (Nightly), Safari 53 (Tech Preview) und Chrome 65.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „position: sticky' in meiner Fußzeile nicht, wenn die Höhe des Seitenkörpers und das #main-Element angegeben sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage