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

View in English Always switch to English

scroll-marker-group CSS property

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die scroll-marker-group CSS-Eigenschaft steuert, ob für ein Scroll-Container--Element ein ::scroll-marker-group Pseudo-Element generiert wird. Falls vorhanden, legt die Eigenschaft auch fest, ob die Scroll-Marker-Gruppe before oder after den Inhalt des Scroll-Gruppen-Containers in der Standard-Tab- und visuellen Reihenfolge platziert werden soll.

Hinweis: Um einen Scroll-Marker-Gruppen-Container aus einem vorhandenen Element zu erstellen, das eine Reihe von <a> Elementen enthält, verwenden Sie die scroll-target-group Eigenschaft. Lesen Sie über die Unterschiede im Verhalten zwischen den beiden.

Syntax

css
/* Single values */
scroll-marker-group: before;
scroll-marker-group: after;
scroll-marker-group: none;

/* Global values */
scroll-marker-group: inherit;
scroll-marker-group: initial;
scroll-marker-group: revert;
scroll-marker-group: revert-layer;
scroll-marker-group: unset;

Werte

after

Ein ::scroll-marker-group Pseudo-Element wird als Geschwister der Kindelemente des Scroll-Containers generiert, unmittelbar vor diesen und vor jedem generierten ::scroll-button() Pseudo-Element. Es erscheint am Ende der Tab-Reihenfolge und der Layout-Reihenfolge des Containers (aber nicht in der DOM-Struktur).

before

Ein ::scroll-marker-group Pseudo-Element wird als Geschwister der Kindelemente des Scroll-Containers generiert, unmittelbar vor diesen und vor jedem generierten ::scroll-button() Pseudo-Element. Die Scroll-Marker-Gruppe erscheint am Anfang der Tab-Reihenfolge und der Layout-Reihenfolge des Containers.

none

Es wird kein ::scroll-marker-group Pseudo-Element auf dem Element generiert. Dies ist der Standardwert.

Hinweis: Als Best Practice für Barrierefreiheit sollte die visuelle Position der Scroll-Marker-Gruppen mit der Tab-Reihenfolge übereinstimmen. Wenn Sie die Marker-Gruppe mit Stilen auf das ::scroll-marker-group-Element am Anfang des Inhalts positionieren, setzen Sie sie an den Anfang der Tab-Reihenfolge mit before. Wenn Sie die Gruppe am Ende des Inhalts positionieren, setzen Sie sie an das Ende der Tab-Reihenfolge mit after.

Formale Definition

Anfangswertnone
Anwendbar aufScrollcontainer
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

scroll-marker-group = 
none |
[ [ before | after ] || [ links | tabs ] ]

Beispiele

Siehe Erstellen von CSS-Karussells für vollständige Beispiele, die die scroll-marker-group Eigenschaft verwenden.

Platzierung der Scroll-Marker

In diesem Beispiel zeigen wir die drei Werte der scroll-marker-group Eigenschaft.

HTML

Wir haben eine grundlegende HTML-<ul> Liste mit mehreren <li> Listenelementen.

html
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li>Item 8</li>
</ul>

CSS

Wir verwandeln unser <ul> in ein Karussell, indem wir das display auf flex setzen und so eine einzige, nicht umgebrochene Reihe von <li> Elementen erstellen. Die overflow-x Eigenschaft wird auf auto gesetzt, was bedeutet, dass der Inhalt horizontal scrollt, wenn die Elemente den Container auf der x-Achse überschreiten. Wir verwandeln das <ul> anschließend in einen Scroll-Snap-Container, um sicherzustellen, dass die Elemente immer einrasten, wenn der Container mit einem scroll-snap-type-Wert von mandatory gescrollt wird.

Wir erstellen einen Scroll-Marker-Gruppen-Container mit der scroll-marker-group Eigenschaft, indem wir die Gruppe nach dem gesamten Inhalt platzieren.

css
ul {
  display: flex;
  gap: 4vw;
  padding-left: 0;
  margin: 32px 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;

  scroll-marker-group: after;
}

Als nächstes stylen wir die <li> Elemente, indem wir die flex Eigenschaft verwenden, um sie 33% der Breite des Containers ausfüllen zu lassen. Der scroll-snap-align Wert von start sorgt dafür, dass die linke Seite des linken Sichtbarkeitsbereichs an den linken Rand des Containers einrastet, wenn der Inhalt gescrollt wird.

css
li {
  list-style-type: none;
  background-color: #eeeeee;
  flex: 0 0 33%;
  scroll-snap-align: start;
  text-align: center;
  line-height: 5;
}

Wir verwenden dann das ::scroll-marker Pseudo-Element, um einen quadratischen Marker für jedes Listenelement mit einem roten Rand zu erstellen, und wenden Stile auf das ::scroll-marker-group Pseudo-Element an, um die Scroll-Marker in einer Reihe anzuordnen, mit einem Abstand von 0.2em zwischen jedem Marker.

css
li::scroll-marker {
  content: " ";
  border: 1px solid red;
  height: 1em;
  width: 1em;
}

::scroll-marker-group {
  display: flex;
  gap: 0.2em;
}

Schließlich, um eine gute Benutzererfahrung zu gewährleisten, stylen wir den Marker des aktuell gescrollten Elements anders als die anderen, indem wir den Marker mit der :target-current Pseudoklasse anvisieren.

css
::scroll-marker:target-current {
  background: red;
}

Ergebnis

Beachten Sie die Platzierung des Scroll-Marker-Gruppen-Containers. Schauen Sie, wie sich die Tabulatorreihenfolge bei before im Vergleich zu after unterscheidet, und beachten Sie, wie die Gruppe verschwindet, wenn der Wert auf none gesetzt ist.

Spezifikationen

Spezifikation
CSS Overflow Module Level 5
# scroll-marker-group-property

Browser-Kompatibilität

Siehe auch