position-visibility
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die position-visibility CSS Eigenschaft ermöglicht das bedingte Verbergen eines ankergestützten Elements, je nachdem, ob es beispielsweise sein umgebendes 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
always-
Das positionierte Element wird immer angezeigt.
anchors-valid-
Wenn der Wert des
position-anchordes 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 umgebendes Element (oder den Viewport) überläuft oder von anderen Elementen überdeckt wird, wird das positionierte Element stark verborgen.
no-overflow-
Wenn das positionierte Element beginnt, sein umgebendes Element oder den Viewport zu überlaufen, wird es stark verborgen.
Beschreibung
In einigen Situationen möchten Sie vielleicht ein ankergestütztes Element nicht anzeigen. Wenn sein zugehöriger Anker beispielsweise aus dem Sichtfeld gescrollt wurde, das ankergestützte Element jedoch sonst noch teilweise oder vollständig sichtbar wäre, könnte es unklar sein, worauf es sich bezieht, und unnötig Platz beanspruchen. Daher möchten Sie es möglicherweise komplett verbergen.
Die position-visibility Eigenschaft kann verwendet werden, um das ankergestützte Element immer anzuzeigen oder es unter bestimmten Umständen bedingt zu verbergen:
anchors-visible: Das zugehörige Ankerelement ist vollständig verborgen.anchors-valid: Dieposition-anchorEigenschaft des ankergestützten Elements verweist nicht auf einen gültigenanchor-name, der auf einem Ankerelement im selben Dokument gesetzt ist.no-overflow: Das ankergestützte 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 agiert, als hätten es und seine untergeordneten Elemente einen visibility Wert von hidden, unabhängig davon, welchen sichtbaren Wert sie tatsächlich haben.
position-visibility sollte nur in Situationen verwendet werden, in denen es bevorzugt wird, das positionierte Element komplett zu verbergen. In den meisten Fällen ist es sinnvoller zu versuchen, die Platzierung der positionierten Elemente zu ändern, wenn sie anfangen, den Bildschirmrand zu überschreiten, um sie sichtbar und verwendbar zu halten. Dies kann mit der position-try-fallbacks Eigenschaft und der @position-try At-Regel erreicht werden. Weitere Informationen finden Sie im Fallback-Optionen und bedingtes Verbergen bei Überlauf Leitfaden.
Formale Definition
| Anfangswert | anchors-visible |
|---|---|
| Anwendbar auf | absolut positionierte Elemente |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | diskret |
Formale Syntax
position-visibility =
always |
[ anchors-valid || anchors-visible || no-overflow ]
Beispiele
>Grundlegende Verwendung
Dieses Beispiel ermöglicht der Änderung des Wertes der position-visibility Eigenschaft eines ankergestützten Elements, um die Effekte jedes Wertes zu demonstrieren.
HTML
Wir spezifizieren zwei <div> Elemente: ein Ankerelement mit einer Klasse von anchor und ein positioniertes Element mit einer Klasse von infobox.
<div class="anchor">⚓︎</div>
<div class="infobox">
<p>This is an information box.</p>
</div>
Das HTML enthält auch ein Fülltext, um den Inhalt größer als den Viewport zu machen, sodass Scrollen erforderlich ist. Es wurde außerdem ein <fieldset> mit einer Gruppe von Radio Inputs mit verschiedenen position-visibility Werten hinzugefügt. Das Markup dafür wird der Kürze halber nicht gezeigt.
CSS
Wir gestalten ein anchor <div> als Ankerelement und verknüpfen das infobox <div> damit. Das 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, wenn ein neuer Wert ausgewählt wird, wir den position-visibility Eigenschaftswert der Infobox aktualisieren.
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 und scrollen Sie dann die Seite auf und ab, um deren Effekte zu sehen. Mit position-visibility: always gesetzt wird das positionierte Element nicht verborgen. Mit position-visibility: anchors-visible gesetzt wird das positionierte Element nur sichtbar, wenn der Anker teilweise oder vollständig sichtbar ist. Mit position-visibility: no-overflow gesetzt wird das positionierte Element verborgen, sobald es beginnt, den Viewport zu überlaufen.
Spezifikationen
| Specification |
|---|
| CSS Anchor Positioning Module Level 1> # position-visibility> |