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 nach Anker positionierten Elements, beispielsweise ob es über das umgebende Element oder den Ansichtsbereich hinausragt.
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 aus dem umgebenden Element (oder dem Ansichtsbereich) oder durch Überlagerung mit anderen Elementen, wird das positionierte Element stark verborgen.
no-overflow
-
Wenn das positionierte Element beginnt, aus seinem umgebenden Element oder dem Ansichtsbereich zu überlaufen, wird es stark verborgen.
Die Spezifikation definiert auch den Wert anchors-valid
, der jedoch noch in keinem Browser implementiert wurde.
Beschreibung
In einigen Situationen möchten Sie ein nach Anker positioniertes Element möglicherweise nicht anzeigen. Zum Beispiel, wenn der zugehörige Anker aus dem Sichtbereich gescrollt wurde, das nach Anker positionierte Element jedoch sonst noch teilweise oder vollständig sichtbar wäre, könnte es unklar sein, worauf es sich bezieht und unnötig Platz einnehmen, weshalb Sie möchten, dass es vollständig verborgen wird.
Die Eigenschaft position-visibility
kann verwendet werden, um das nach Anker positionierte Element always
anzuzeigen oder bedingt zu verbergen, wenn das zugehörige Ankerelement vollständig verborgen ist (anchors-visible
) oder wenn das nach Anker positionierte Element selbst teilweise verborgen ist (no-overflow
).
Wenn ein Element aufgrund von position-visibility
verborgen wird, spricht man von stark verborgen. Dies bedeutet, dass es so agieren wird, als hätten es und seine Nachkommenelemente einen visibility
-Wert von hidden
, unabhängig davon, welchen tatsächlichen Sichtbarkeitswert sie haben.
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 der positionierten Elemente zu ändern, wenn sie beginnen, überzulaufen, um sie auf dem Bildschirm und damit nutzbar zu halten. Dies kann mit der position-try-fallbacks
-Eigenschaft und der @position-try
-At-Regel erreicht werden. Lesen Sie den Überlauf behandeln: Rückfalloptionen ausprobieren und bedingtes Verbergen Leitfaden für weitere Informationen.
Formale Definition
Anfangswert | anchors-visible |
---|---|
Anwendbar auf | absolut positionierte Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formaler Syntax
Beispiele
Grundlegende Verwendung
Dieses Beispiel ermöglicht die Änderung des Wertes der position-visibility
-Eigenschaft eines nach Anker positionierten Elements, um die Auswirkungen 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 Fülltext, um den Inhalt höher 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. Die Markierung dafür wird der Kürze halber 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: --myAnchor;
}
.infobox {
position-anchor: --myAnchor;
position: fixed;
position-area: top span-all;
margin-bottom: 5px;
position-visibility: always;
}
JavaScript
Wir fügen einen change
Ereignishandler auf den Radioknöpfen hinzu, sodass wir, wenn ein neuer Wert ausgewählt wird, 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 aus und scrollen Sie dann die Seite nach oben und unten, 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 sein, wenn der Anker teilweise oder vollständig auf dem Bildschirm ist. Mit position-visibility: no-overflow
gesetzt, wird das positionierte Element verborgen, sobald es beginnt, aus dem Ansichtsbereich zu überlaufen.
Spezifikationen
Specification |
---|
CSS Anchor Positioning # position-visibility |