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 Verbergen eines ankerpositionierten Elements, zum Beispiel, wenn es seinen enthaltenden oder den Ansichtsbereich ü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 der Anker vollständig verborgen ist, sei es durch Überlauf des enthaltenden Elements (oder des Ansichtsbereichs) oder durch Verdeckung durch andere Elemente, wird das positionierte Element stark verborgen.
no-overflow
-
Wenn das positionierte Element beginnt, seinen enthaltenden oder den Ansichtsbereich zu überlaufen, wird es stark verborgen.
Die Spezifikation definiert auch den Wert anchors-valid
, der in keinem Browser implementiert wurde.
Beschreibung
In einigen Situationen möchten Sie möglicherweise ein ankerpositioniertes Element nicht anzeigen. Zum Beispiel, wenn der zugehörige Anker außerhalb des Bildschirms gescrollt wurde, das ankerpositionierte Element jedoch teilweise oder vollständig sichtbar bleibt, könnte es unklar sein, worauf es sich bezieht und unnötig Platz einnehmen. Daher möchten Sie es möglicherweise vollständig verbergen.
Die Eigenschaft position-visibility
kann verwendet werden, um das ankerpositionierte Element always
anzuzeigen oder es bedingt zu verbergen, wenn das zugehörige Ankerelement vollständig verborgen ist (anchors-visible
) oder wenn das ankerpositionierte Element selbst teilweise verborgen ist (no-overflow
).
Wenn ein Element aufgrund von position-visibility
verborgen wird, wird dies als stark verborgen bezeichnet. Das bedeutet, dass es so wirkt, als ob es und seine Nachkommenelemente den visibility
Wert hidden
hätten, unabhängig davon, welcher Sichtbarkeitswert tatsächlich gesetzt ist.
position-visibility
sollte nur in Situationen verwendet werden, in denen das vollständige Verbergen des positionierten Elements bevorzugt wird. In den meisten Fällen ist es sinnvoller, zu versuchen, die Platzierung von positionierten Elementen zu ändern, wenn sie zu überlaufen beginnen, um sie auf dem Bildschirm und benutzbar zu halten. Dies kann mit der Eigenschaft position-try-fallbacks
und der Regel @position-try
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
Beispiele
Grundlegende Nutzung
Dieses Beispiel ermöglicht das Ändern des Wertes der position-visibility
Eigenschaft eines ankerpositionierten Elements, um die Effekte jedes Wertes zu demonstrieren.
HTML
Wir spezifizieren zwei <div>
Elemente: ein Ankerelement mit einer Klasse anchor
und ein positioniertes Element mit einer 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 größer als den Ansichtsbereich zu machen, sodass Scrollen erforderlich ist. Wir haben auch ein <fieldset>
mit einer Gruppe von Radio-Inputs mit verschiedenen position-visibility
Werten hinzugefügt. Der Markup dafür wird der Kürze halber nicht angezeigt.
CSS
Wir stylen ein anchor
<div>
als Ankerelement und binden das infobox
<div>
daran. Der relevante CSS 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
Ereignis-Handler auf die Radio-Buttons ein, sodass, wenn ein neuer Wert ausgewählt wird, wir den position-visibility
Eigenschaftswert des 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 aus und scrollen Sie dann die Seite hoch und runter, um deren Effekte 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 auf dem Bildschirm ist. Bei position-visibility: no-overflow
wird das positionierte Element verborgen, sobald es beginnt, den Ansichtsbereich zu überlaufen.
Spezifikationen
Specification |
---|
CSS Anchor Positioning # position-visibility |