Klebende Position
Der letzte Wert von position ist sticky. Ein klebendes Element ist eine Mischung aus einem relativen und einem fixierten. Zuerst verhält es sich wie ein relatives Element: Es ist im normalen Fluss und scrollt mit der Seite. Aber sobald das Scrollen es über den Rand tragen würde, den seine Verschiebung festlegt, zum Beispiel top: 0, bleibt es an diesem Rand des Fensters kleben und bleibt dort, wie ein fixiertes Element.
Ein klebendes Element verlässt sein Elternelement allerdings nie. Es klebt nur, solange sein Elternelement auf dem Bildschirm ist: Wenn das Ende des Elternelements vorbeiscrollt, wird das klebende Element mit ihm weggeschoben. Probiere es in dieser Box aus. Beide Überschriften darin haben position: sticky und top: 0, und jede steht in ihrem eigenen Abschnitt. Die Box scrollt für sich, die Überschriften kleben also am oberen Rand der Box statt am oberen Rand des Fensters:
Abschnitt A
Scrolle in dieser Box nach unten.
Die Überschrift von Abschnitt A klebt oben.
Sie bleibt dort, solange Abschnitt A sichtbar ist.
Scrolle weiter ...
Das ist die letzte Zeile von Abschnitt A.
Abschnitt B
Abschnitt A has scrolled away, and its heading went with it.
Jetzt klebt die Überschrift von Abschnitt B oben.
Ihr Elternelement ist Abschnitt B.
Scrolle weiter ...
Das ist das Ende der Box.
Ohne Verschiebung (top, bottom und so weiter) klebt ein klebendes Element überhaupt nicht.
Die klebende Position wird oft für eine Navigation verwendet, die beim Scrollen am oberen Rand des Fensters bleibt. Anders als ein fixiertes Element behält ein klebendes seinen Platz im normalen Fluss, deckt also am Anfang der Seite den Inhalt darunter nicht zu.
Und wenn sich Elemente überlappen, welches liegt oben? Elemente mit einer anderen Position als static werden über den statischen gezeichnet, und untereinander in der Reihenfolge, in der sie im HTML stehen: Ein späteres überdeckt ein früheres. Das können wir mit der Eigenschaft z-index ändern, die bei Elementen funktioniert, deren Position nicht static ist: Ein Element mit höherem z-index überdeckt eines mit niedrigerem Wert. Elemente ohne z-index verhalten sich, als wäre er 0.
So schreibst du es:
Anweisungen
- 1
Füge in der Regel für
navposition: stickyundtop: 0hinzu. Scrolle die Seite: Die Navigation bleibt am oberen Rand des Fensters. Ihr Elternelement istbody, das die ganze Seite umfasst, die Navigation scrollt also nie weg. - 2
Scrolle nach unten zu den Rassen-Karten: Sie schieben sich über die Navigation statt darunter. Sie haben
position: relativeund stehen im HTML nach der Navigation, werden also darüber gezeichnet. Füge in der Regel fürnavz-index: 1hinzu. Jetzt schieben sich die Karten unter die Navigation.