Heim >Web-Frontend >CSS-Tutorial >Warum verhält sich Sticky Positioning anders als in der MDN-Dokumentation beschrieben?

Warum verhält sich Sticky Positioning anders als in der MDN-Dokumentation beschrieben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 06:45:09858Durchsuche

Why Does Sticky Positioning Behave Differently Than the MDN Documentation Describes?

Untersuchung der Diskrepanz im Sticky-Position-Verhalten

In der MDN-Dokumentation wird die Sticky-Positionierung als ein Attribut dargestellt, das Elemente einmal von der relativen Platzierung in die feste Platzierung überführt ein definierter Schwellenwert überschritten wird. In der Praxis verhält es sich jedoch anders. Diese Diskrepanz ist auf ein Missverständnis der Reihenfolge zurückzuführen, in der diese Zustände implementiert werden.

Laut MDN verhalten sich Sticky-Position-Elemente zunächst wie relative Positionselemente, bis der Schwellenwert überschritten wird. In dem Kontext, in dem „bottom:0“ angegeben ist, wird der Schwellenwert jedoch bereits im Ausgangszustand überschritten. Dadurch erhält das Element direkt seine feste Platzierung und bleibt diese, bis die Position des Elements 0 Pixel vom unteren Rand des Ansichtsfensters überschreitet.

Informationen zu Sticky-Position-Zuständen

Position:sticky hat zwei unterschiedliche Zustände:

  1. Relativer Zustand: Das Element verhält sich wie ein relativ positioniertes Objekt.
  2. Fester Zustand:Das Element bleibt an einer festen Position gegenüber dem Ansichtsfenster.

Der Anfangszustand wird durch den Zustand des Elements bestimmt Platzierung und der definierten Schwelle. Im Fall von unten:0 wird der Schwellenwert sofort überschritten, was zu einem anfänglichen festen Zustand führt. Beim Scrollen des Ansichtsfensters bleibt das Element fixiert, bis der Abstand vom unteren Rand größer als 0 Pixel wird. An diesem Punkt kehrt es in seinen relativen Zustand zurück.

Veranschaulichung des Verhaltens

Betrachten Sie den folgenden Codeausschnitt:

body {
  height:150vh;
  margin:0;
  display:flex;
  flex-direction:column;
  border:2px solid;
  margin:50px;
}

.b {
  margin-top:auto;
  position:sticky;
  bottom:0;
}

.a {
  position:sticky;
  top:0;
}
<div class="a"> 
  I will start relative then I will be fixed
</div>
<div class="b"> 
  I will start fixed then I will be relative
</div>

Element A mit top:0 verhält sich zunächst relativ und geht in einen festen Zustand über, wenn es den oberen Rand des Ansichtsfensters erreicht. Element B mit unten:0 beginnt sofort an einer festen Position und geht in eine relative Position über, wenn der Abstand vom unteren Rand des Ansichtsfensters 0 Pixel überschreitet.

Das obige ist der detaillierte Inhalt vonWarum verhält sich Sticky Positioning anders als in der MDN-Dokumentation beschrieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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