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.

Want more browser support for this feature? Tell us why.

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 ein Scroll-Container Element ein ::scroll-marker-group Pseudoelement generiert hat. Wenn vorhanden, legt die Eigenschaft auch fest, ob die Scroll-Markierungsgruppe before oder after den Inhalten des Scroll-Container-Gruppenelements in der Standard-Visual- und Tabulatorreihenfolge platziert werden soll.

Hinweis: Um aus einem bestehenden Element, das eine Reihe von <a> Elementen enthält, einen Scroll-Markierungsgruppen-Container zu erstellen, verwenden Sie die scroll-target-group Eigenschaft. Lesen Sie über die Verhaltensunterschiede 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

Diese Eigenschaft wird als einer der folgenden Schlüsselwortwerte angegeben:

after

Ein ::scroll-marker-group Pseudoelement wird als Geschwister der Kind-DOM-Elemente des Scroll-Containers generiert, unmittelbar vor ihnen und allen generierten ::scroll-button() Pseudoelementen. Es erscheint am Ende der Tabulator- und Layout-Box-Reihenfolge des Containers (aber nicht in der DOM-Struktur).

before

Ein ::scroll-marker-group Pseudoelement wird als Geschwister der Kind-DOM-Elemente des Scroll-Containers generiert, unmittelbar vor ihnen und allen generierten ::scroll-button() Pseudoelementen. Die Scrollmarkierungsgruppe erscheint am Anfang der Tabulator- und Layout-Box-Reihenfolge des Containers.

none

Kein ::scroll-marker-group Pseudoelement wird auf dem Element generiert. Dies ist der Standardwert.

Hinweis: Als Barrierefreiheits-Best-Practice sollte die visuelle Renderposition des Scroll-Markierungsgruppen-Containers mit der Tabulatorreihenfolge übereinstimmen. Wenn die Markierungsgruppe am Anfang des Inhalts positioniert wird, sollte sie mit before an den Anfang der Tabulatorreihenfolge gesetzt werden. Wird die Gruppe am Ende des Inhalts positioniert, sollte sie mit after an das Ende der Tabulatorreihenfolge gesetzt werden.

Formale Definition

Anfangswertnone
Anwendbar aufScrollcontainer
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

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

Beispiele

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

Platzierung der Scrollmarkierungen

In diesem Beispiel demonstrieren 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 wandeln unser <ul> in ein Karussell um, indem wir display auf flex setzen und eine einzelne, nicht umbruchende Reihe von <li>-Elementen erstellen. Die overflow-x Eigenschaft ist auf auto gesetzt, was bedeutet, dass wenn die Elemente ihren Container auf der X-Achse überfließen, der Inhalt horizontal scrollt. Wir machen dann aus dem <ul> einen Scroll-Snap-Container, um sicherzustellen, dass die Elemente immer an ihrem Platz einrasten, wenn der Container mit einem scroll-snap-type Wert von mandatory gescrollt wird.

Wir erstellen einen Scroll-Markierungsgruppen-Container mit der scroll-marker-group Eigenschaft und platzieren die Gruppe nach dem gesamten Inhalt.

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 gestalten wir die <li> Elemente und verwenden die flex Eigenschaft, um sie auf 33% der Breite des Containers zu setzen. Der scroll-snap-align Wert von start sorgt dafür, dass die linke Seite des am weitesten links sichtbaren Elements an der linken Kante 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 Pseudoelement, um für jedes Listenelement einen quadratischen Marker mit rotem Rand zu erstellen, und wenden Stile auf das ::scroll-marker-group Pseudoelement an, um die Scroll-Markierungen in einer Reihe mit einem 0.2em Abstand zwischen ihnen anzuordnen.

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, gestalten 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-Markierungsgruppen-Containers. Sehen Sie, wie sich die Tabulatorreihenfolge bei before im Gegensatz zu after ändert, und beachten Sie, wie die Gruppe verschwindet, wenn der Wert auf none gesetzt wird.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch