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, bevor Sie diese produktiv verwenden.
Die position-visibility
CSS Eigenschaft ermöglicht das bedingte Ausblenden eines verankerten Elements, abhängig davon, ob es beispielsweise über sein enthaltendes Element oder den Viewport 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 versteckt ist, entweder aufgrund von Überlappungen mit seinem enthaltenden Element (oder dem Viewport) oder durch andere Elemente verdeckt, wird das positionierte Element stark versteckt.
no-overflow
-
Wenn das positionierte Element beginnt, sein enthaltendes Element oder den Viewport zu überlappen, wird es stark versteckt.
Die Spezifikation definiert auch den Wert anchors-valid
, der in keinem Browser bisher implementiert wurde.
Beschreibung
In einigen Situationen möchten Sie möglicherweise ein verankertes Element nicht anzeigen. Zum Beispiel, wenn der zugehörige Anker aus dem sichtbaren Bereich gescrollt wurde, das verankerte Element jedoch ansonsten noch teilweise oder vollständig sichtbar wäre, könnte es unklar sein, worauf es sich bezieht, und unnötig Platz einnehmen. In solch einem Fall könnte es ratsam sein, es vollständig auszublenden.
Die position-visibility
Eigenschaft kann verwendet werden, um das verankerte Element always
anzuzeigen oder es bedingt auszublenden, wenn das zugehörige Ankerelement vollständig versteckt ist (anchors-visible
) oder wenn das verankerte Element selbst teilweise versteckt ist (no-overflow
).
Wenn ein Element aufgrund von position-visibility
versteckt ist, wird es als stark versteckt bezeichnet. Das bedeutet, dass es so behandelt wird, als ob es und seine Nachkommen eine visibility
von hidden
hätten, unabhängig von ihrem tatsächlichen Sichtbarkeitswert.
position-visibility
sollte nur in Situationen verwendet werden, in denen das vollständige Ausblenden des positionierten Elements bevorzugt wird. In den meisten Fällen ist es sinnvoller, zu versuchen, die Positionierung der ausgesuchten Elemente zu ändern, wenn sie zu überlappen beginnen, um sie sichtbar und benutzbar zu halten. Dies kann mit der position-try-fallbacks
Eigenschaft und der @position-try
Regel erreicht werden. Weitere Informationen finden Sie im Umgang mit Überlappungen: Fallbacks ausprobieren und bedingtes Verstecken Leitfaden.
Formale Definition
Initialer Wert | anchors-visible |
---|---|
Anwendbar auf | absolut positionierte Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Grundlegende Nutzung
In diesem Beispiel wird die Möglichkeit gezeigt, den Wert der position-visibility
Eigenschaft eines verankerten Elements zu ändern, um die Auswirkungen jedes Wertes zu demonstrieren.
HTML
Wir spezifizieren zwei <div>
Elemente; ein Ankerelement mit der Klasse anchor
und ein positioniertes Element mit der 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 Viewport zu gestalten, sodass Scrollen erforderlich ist. Wir haben auch ein <fieldset>
mit einer Gruppe von Radiobuttons mit verschiedenen position-visibility
Werten hinzugefügt. Das Markup für diese wird der Kürze halber nicht gezeigt.
CSS
Wir stylen 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 für die Radiobuttons hinzu, so dass, wenn ein neuer Wert ausgewählt wird, wir den position-visibility
Wert 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 unterschiedliche position-visibility
Werte aus und scrollen Sie dann die Seite auf und ab, um ihre Auswirkungen zu sehen. Mit position-visibility: always
wird das positionierte Element nicht verborgen. Mit position-visibility: anchors-visible
wird das positionierte Element nur sichtbar, wenn der Anker teilweise oder vollständig im sichtbaren Bereich ist. Bei position-visibility: no-overflow
wird das positionierte Element versteckt, sobald es beginnt, den Viewport zu überlappen.
Spezifikationen
Specification |
---|
CSS Anchor Positioning # position-visibility |
Browser-Kompatibilität
BCD tables only load in the browser