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.
Die position-visibility CSS Eigenschaft ermöglicht das bedingte Verbergen eines mit Anker positionierten Elements, je nachdem, ob es beispielsweise über das umschließende Element oder den Viewport hinausgeht.
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
position-anchorWert des positionierten Elements nicht auf ein gültiges Ankerelement verweist, wird das positionierte Element stark verborgen. anchors-visible-
Wenn der Anker vollständig verborgen ist, entweder durch Überlaufen des umschließenden Elements (oder des Viewports) oder durch Überdeckung durch andere Elemente, wird das positionierte Element stark verborgen.
no-overflow-
Wenn das positionierte Element beginnt, über das umschließende Element oder den Viewport hinaus zu gehen, wird es stark verborgen.
Beschreibung
In manchen Situationen möchten Sie eventuell ein mit Anker positioniertes Element nicht anzeigen. Zum Beispiel, wenn sein zugehöriger Anker aus dem Sichtbereich gescrollt ist, das Element selbst jedoch teilweise oder vollständig sichtbar wäre, könnte unklar sein, worauf es sich bezieht und es könnte unnötig Platz einnehmen, daher möchten Sie es vielleicht komplett ausblenden.
Die position-visibility Eigenschaft kann verwendet werden, um das mit Anker positionierte Element immer zu zeigen oder es unter bestimmten Bedingungen auszublenden:
anchors-visible: Das zugehörige Ankerelement ist vollständig verborgen.anchors-valid: Dieposition-anchorEigenschaft des Anker-positionierten Elements verweist nicht auf eine gültigeanchor-namedie 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 wirkt, als hätten es und seine Nachfahrelemente einen visibility Wert von hidden gesetzt, unabhängig von ihrem tatsächlichen Sichtbarkeitswert.
position-visibility sollte nur in Situationen verwendet werden, in denen es bevorzugt wird, das positionierte Element komplett auszublenden. In den meisten Fällen macht es mehr Sinn, zu versuchen, die Platzierung von positionierten Elementen zu ändern, wenn sie anfangen zu überlaufen, um sie auf dem Bildschirm und benutzbar zu halten. Dies kann mit der position-try-fallbacks Eigenschaft und der @position-try Regel erfolgen. Siehe den Fallback-Optionen und bedingtes Ausblenden für Überlauf Leitfaden für mehr Informationen.
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 das Ändern des Wertes der position-visibility Eigenschaft eines Anker positionierten 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 umfasst auch Fülltext, um den Inhalt höher als den Viewport zu machen, so dass Scrollen erforderlich ist. Wir haben auch ein <fieldset> mit einer Gruppe von Radio-Inputs mit verschiedenen position-visibility Werten aufgenommen. Das Markup für diese ist aus Gründen der Kürze nicht gezeigt.
CSS
Wir gestalten ein anchor <div> als Ankerelement und binden das infobox <div> daran. 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 Ereignis-Handler für die Radio-Buttons hinzu, sodass, wenn ein neuer Wert ausgewählt wird, wir den Wert der position-visibility Eigenschaft 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 nach oben und unten, um ihre Auswirkungen zu sehen. Bei position-visibility: always wird das positionierte Element nicht verborgen. Bei position-visibility: anchors-visible wird das positionierte Element nur sichtbar sein, wenn der Anker teilweise oder vollständig im Bildschirm ist. Bei 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> |