position-visibility CSS property
Baseline
2026
*
Neu verfügbar
Seit January 2026 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Want more browser support for this feature? Tell us why.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die position-visibility CSS Eigenschaft ermöglicht es, ein Anker-positioniertes Element bedingt zu verbergen, je nachdem beispielsweise, ob es sein enthaltendes Element oder den Viewport überläuft.
Syntax
/* Single values */
position-visibility: always;
position-visibility: anchors-valid;
position-visibility: anchors-visible;
position-visibility: no-overflow;
/* Global values */
position-visibility: inherit;
position-visibility: initial;
position-visibility: revert;
position-visibility: revert-layer;
position-visibility: unset;
Werte
Diese Eigenschaft wird als einer der folgenden Schlüsselwortwerte angegeben:
always-
Das positionierte Element wird immer angezeigt.
anchors-valid-
Wenn der
position-anchor-Wert des positionierten Elements nicht auf ein gültiges Ankerelement zeigt, wird das positionierte Element stark verborgen. anchors-visible-
Wenn der Anker vollständig verborgen ist, entweder weil er sein enthaltendes Element (oder den Viewport) überläuft oder von anderen Elementen verdeckt wird, wird das positionierte Element stark verborgen.
no-overflow-
Wenn das positionierte Element beginnt, sein enthaltendes Element oder den Viewport zu überlaufen, wird es stark verborgen.
Beschreibung
In einigen Situationen möchten Sie eventuell ein Anker-positioniertes Element nicht anzeigen. Zum Beispiel, wenn sein zugehöriger Anker vom Bildschirm gescrollt wurde, aber das Anker-positionierte Element ansonsten noch teilweise oder vollständig sichtbar wäre, könnte es unklar sein, worauf es sich bezieht und unnötigerweise Platz einnehmen. Daher möchten Sie es vielleicht komplett verbergen.
Die Eigenschaft position-visibility kann verwendet werden, um das Anker-positionierte Element always anzuzeigen oder bedingt in bestimmten Situationen zu verbergen:
anchors-visible: Das zugehörige Ankerelement ist vollständig verborgen.anchors-valid: Dieposition-anchor-Eigenschaft des Anker-positionierten Elements verweist nicht auf einen gültigenanchor-nameder auf ein Ankerelement im selben Dokument gesetzt ist.no-overflow: Das Anker-positionierte Element ist teilweise oder vollständig verborgen.
Wenn ein Element aufgrund von position-visibility verborgen ist, wird es als stark verborgen bezeichnet. Das bedeutet, dass es so agieren wird, als ob es und seine Nachkommenelemente einen visibility-Wert von hidden gesetzt haben, unabhängig von ihrem eigentlichen Sichtbarkeitswert.
position-visibility sollte nur in Situationen verwendet werden, in denen es bevorzugt wird, das positionierte Element vollständig zu verbergen. In den meisten Fällen ist es sinnvoller zu versuchen, die Platzierung von positionierten Elementen zu ändern, wenn sie beginnen, überzulaufen, um sie auf dem Bildschirm und nutzbar zu halten. Dies kann mit der Eigenschaft position-try-fallbacks und der Regel @position-try erreicht werden. Sehen Sie den Fallback-Optionen und bedingtes Verbergen bei Überlauf Leitfaden für weitere Informationen.
Formale Definition
| Anfangswert | anchors-visible |
|---|---|
| Anwendbar auf | absolut positionierte Elemente |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | diskret |
Formale Syntax
position-visibility =
always |
[ anchor-valid || anchor-visible || no-overflow ]
Beispiele
>Grundlegende Nutzung
Dieses Beispiel erlaubt das Ändern des Wertes der position-visibility-Eigenschaft eines Ankers, um die Effekte jedes Wertes zu demonstrieren.
HTML
Wir spezifizieren zwei <div> Elemente: ein Ankerelement mit der Klasse anchor und ein positioniertes Element mit der Klasse infobox.
<div class="anchor">⚓︎</div>
<div class="infobox">
<p>This is an information box.</p>
</div>
Das HTML enthält auch Fülltext, um den Inhalt höher als den Viewport zu machen, sodass Scrollen erforderlich ist. Wir haben auch ein <fieldset> mit einer Gruppe von Radio-Eingaben mit verschiedenen position-visibility-Werten eingeschlossen. Das Markup hierfür wird aus Gründen der Kürze nicht gezeigt.
CSS
Wir gestalten ein anchor <div> als Ankerelement und verbinden das infobox <div> damit. Der relevante CSS ist wie folgt:
.anchor {
anchor-name: --my-anchor;
}
.infobox {
position-anchor: --my-anchor;
position: fixed;
position-area: top span-all;
margin-bottom: 5px;
position-visibility: always;
}
JavaScript
Wir fügen einen change-Ereignishandler zu den Radio-Buttons hinzu, sodass beim Auswählen eines neuen Werts der Wert der position-visibility-Eigenschaft der Infobox aktualisiert wird.
const infobox = document.querySelector(".infobox");
const radios = document.querySelectorAll('[name="position-visibility"]');
for (const radio of radios) {
radio.addEventListener("change", setPositionVisibility);
}
function setPositionVisibility(e) {
infobox.style.positionVisibility = e.target.value;
}
Ergebnis
Wählen Sie verschiedene position-visibility-Werte aus und scrollen Sie dann die Seite nach oben und unten, um deren Effekte zu sehen. Mit position-visibility: always wird das positionierte Element nicht verborgen. Mit position-visibility: anchors-visible wird das positionierte Element nur sichtbar, wenn der Anker teilweise oder vollständig auf dem Bildschirm ist. Mit position-visibility: no-overflow wird das positionierte Element verborgen, sobald es beginnt, den Viewport zu überlaufen.
Spezifikationen
| Spezifikation |
|---|
| CSS Anchor Positioning Module Level 1> # position-visibility> |