position-visibility
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die position-visibility
CSS-Eigenschaft ermöglicht das bedingte Ausblenden eines anchorgebundenen Elements, abhängig davon, ob es beispielsweise sein enthaltendes Element oder den Viewport überläuft.
Syntax
/* Single values */
position-visibility: always;
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-visible
-
Wenn das Anchor-Element vollständig versteckt ist, entweder weil es sein enthaltendes Element (oder den Viewport) überläuft oder von anderen Elementen überdeckt wird, wird das positionierte Element stark versteckt.
no-overflow
-
Wenn das positionierte Element beginnt, sein enthaltendes Element oder den Viewport zu überlaufen, wird es stark versteckt.
Die Spezifikation definiert auch den Wert anchors-valid
, der jedoch in keinem Browser implementiert wurde.
Beschreibung
In einigen Situationen möchten Sie möglicherweise ein anchorgebundenes Element nicht anzeigen. Wenn zum Beispiel das zugehörige Anchor-Element vom Bildschirm gescrollt wurde, das anchorgebundene Element jedoch ansonsten noch teilweise oder vollständig sichtbar wäre, kann es unklar sein, worauf es sich bezieht und nimmt unnötig Platz ein. Daher möchten Sie es möglicherweise vollständig ausblenden.
Die Eigenschaft position-visibility
kann verwendet werden, um das anchorgebundene Element immer
anzuzeigen oder bedingt auszublenden, wenn das zugehörige Anchor-Element vollständig versteckt ist (anchors-visible
) oder wenn das anchorgebundene Element selbst teilweise versteckt ist (no-overflow
).
Wenn ein Element aufgrund von position-visibility
ausgeblendet wird, wird es als stark versteckt bezeichnet. Das bedeutet, dass es so wirkt, als hätten es und seine Nachkommen-Elemente einen visibility
-Wert von hidden
, unabhängig von ihrem tatsächlichen Sichtbarkeitswert.
position-visibility
sollte nur in Situationen verwendet werden, in denen es bevorzugt wird, das positionierte Element vollständig auszublenden. In den meisten Fällen ist es sinnvoller, zu versuchen, die Platzierung von positionierten Elementen zu ändern, wenn sie beginnen, den Bildschirm zu überlaufen, um sie auf dem Bildschirm und nutzbar zu halten. Dies kann mit der Eigenschaft position-try-fallbacks
und der Regel @position-try
erfolgen. Weitere Informationen finden Sie im Fallback-Optionen und bedingtes Verstecken bei Überlauf-Leitfaden.
Formale Definition
Anfangswert | anchors-visible |
---|---|
Anwendbar auf | absolut positionierte Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Grundlegende Nutzung
Dieses Beispiel ermöglicht das Ändern des Werts der position-visibility
-Eigenschaft eines anchorgebundenen Elements, um die Effekte jedes Wertes zu demonstrieren.
HTML
Wir spezifizieren zwei <div>
-Elemente: ein Anchor-Element 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 Fülltext, um den Inhalt größer als den Viewport zu machen, sodass Scrollen erforderlich ist. Wir haben auch ein <fieldset>
mit einer Gruppe von Radio-Inputs mit verschiedenen position-visibility
-Werten eingefügt. Der Markup für diese wird der Kürze halber nicht gezeigt.
CSS
Wir stylen ein anchor
<div>
als Anchor-Element und binden das infobox
<div>
daran. Der relevante CSS-Code ist wie folgt:
.anchor {
anchor-name: --myAnchor;
}
.infobox {
position-anchor: --myAnchor;
position: fixed;
position-area: top span-all;
margin-bottom: 5px;
position-visibility: always;
}
JavaScript
Wir fügen einen change
-Event-Handler auf den Radio-Buttons hinzu, sodass beim Auswählen eines neuen Werts der position-visibility
-Wert 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 auf und ab, um deren Effekte zu sehen. Mit position-visibility: always
wird das positionierte Element nicht versteckt. Mit position-visibility: anchors-visible
wird das positionierte Element nur sichtbar sein, wenn der Anchor teilweise oder vollständig auf dem Bildschirm ist. Mit position-visibility: no-overflow
wird das positionierte Element ausgeblendet, sobald es beginnt, den Viewport zu überlaufen.
Spezifikationen
Specification |
---|
CSS Anchor Positioning # position-visibility |