Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 es, ein verankerungs-positioniertes Element bedingt auszublenden, je nachdem, ob es beispielsweise sein umgebendes Element oder das Ansichtsfenster überläuft.

Syntax

css
/* 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 Überlaufen seines umgebenden Elements (oder des Ansichtsfensters) oder durch Überdeckung durch andere Elemente, wird das positionierte Element stark verborgen.

no-overflow

Wenn das positionierte Element beginnt, sein umgebendes Element oder das Ansichtsfenster zu überlaufen, wird es stark verborgen.

Die Spezifikation definiert auch den Wert anchors-valid, der noch in keinem Browser implementiert wurde.

Beschreibung

In einigen Situationen möchten Sie möglicherweise ein verankerungs-positioniertes Element nicht anzeigen. Zum Beispiel, wenn der zugehörige Anker vom Bildschirm gescrollt wurde, das verankerte positionierte 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 solchen Fällen könnten Sie es vollständig ausblenden wollen.

Die Eigenschaft position-visibility kann verwendet werden, um das verankerungs-positionierte Element always anzuzeigen oder es bedingt auszublenden, wenn das zugehörige Ankerelement vollständig verborgen ist (anchors-visible) oder wenn das verankerungs-positionierte Element selbst teilweise verborgen ist (no-overflow).

Wenn ein Element aufgrund von position-visibility verborgen wird, wird es als stark verborgen bezeichnet. Dies bedeutet, dass es so behandelt wird, als ob es und seine Nachkommelelemente den visibility Wert hidden gesetzt hätten, unabhängig davon, welchen tatsächlichen Sichtbarkeitswert sie haben.

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 Platzierung der positionierten Elemente zu ändern, wenn sie anfangen zu überlaufen, um sie auf dem Bildschirm und nutzbar zu halten. Dies kann mit der position-try-fallbacks Eigenschaft und der @position-try At-Regel erreicht werden. Siehe den Leitfaden für Fallback-Optionen und bedingtes Ausblenden bei Überfluss für weitere Informationen.

Formale Definition

Anfangswertanchors-visible
Anwendbar aufabsolut positionierte Elemente
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

position-visibility = 
always |
[ anchors-valid || anchors-visible || no-overflow ]

Beispiele

Grundlegende Nutzung

In diesem Beispiel wird das Ändern des Wertes der Property position-visibility eines verankerungs-positionierten Elements ermöglicht, 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.

html
<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 das Ansichtsfenster zu machen, so dass Scrollen erforderlich ist. Wir haben auch ein <fieldset> mit einer Gruppe von Radio-Eingaben mit unterschiedlichen position-visibility Werten hinzugefügt. Die Markup für diese wird aus Gründen der Kürze nicht gezeigt.

CSS

Wir gestalten ein anchor <div> als Ankerelement und verbinden das infobox <div> damit. Das relevante CSS ist wie folgt:

css
.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 Ereignishandler auf den Radio-Buttons hinzu, so dass, wenn ein neuer Wert ausgewählt wird, wir den Wert der position-visibility Eigenschaft der Infobox aktualisieren.

js
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 wird das positionierte Element nicht verborgen. Mit position-visibility: anchors-visible wird das positionierte Element nur sichtbar, wenn der Anker teilweise oder vollständig auf dem Bildschirm ist. Mit position-visibility: no-overflow wird das positionierte Element ausgeblendet, sobald es beginnt, das Ansichtsfenster zu überlaufen.

Spezifikationen

Specification
CSS Anchor Positioning
# position-visibility

Browser-Kompatibilität

Siehe auch