scroll-marker-group
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 scroll-marker-group
CSS Eigenschaft steuert, ob ein Scroll-Container ein ::scroll-marker-group
Pseudoelement generiert und, wenn ja, ob es entweder before
oder after
den Inhalten des Containers in der standardmäßigen visuellen und Tab-Reihenfolge platziert werden soll.
Syntax
/* 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
Pseudoelement wird als Geschwister der Kind-DOM-Elemente des Scroll-Containers generiert, das ihnen unmittelbar vorangeht, sowie allen generierten::scroll-button()
Pseudoelementen. Es erscheint am Ende der Tabulatorreihenfolge und der Layoutboxreihenfolge des Containers (aber nicht der DOM-Struktur). before
-
Ein
::scroll-marker-group
Pseudoelement wird als Geschwister der Kind-DOM-Elemente des Scroll-Containers generiert, das ihnen unmittelbar vorangeht, sowie allen generierten::scroll-button()
Pseudoelementen. Die Scroll-Marker-Gruppe erscheint am Anfang der Tabulatorreihenfolge und der Layoutboxreihenfolge des Containers. none
-
Kein
::scroll-marker-group
Pseudoelement wird am Element generiert. Dies ist der Standardwert.
Hinweis:
Es ist eine bewährte Praxis, die visuelle Rendering-Position der Scroll-Marker-Gruppe mit der Tab-Reihenfolge abzugleichen. Wenn Sie die Markergruppe am Anfang des Inhalts mit auf ::scroll-marker-group
angewendeten Stilen positionieren, setzen Sie sie zu Beginn der Tab-Reihenfolge mit before
. Wenn Sie die Gruppe am Ende des Inhalts positionieren, setzen Sie sie am Ende der Tab-Reihenfolge mit after
.
Formale Definition
Wert in der Datenbank nicht gefunden!Formale Syntax
scroll-marker-group =
none |
before |
after
Beispiele
Siehe Erstellen von CSS-Karussellen für vollständige Beispiele, die die scroll-marker-group
Eigenschaft verwenden.
Platzierung der Scroll-Marker
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.
<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, wodurch eine einzelne, nicht umbrechende Zeile von <li>
Elementen entsteht. Die overflow-x
Eigenschaft ist auf auto
gesetzt, was bedeutet, dass wenn die Elemente ihren Container auf der x-Achse überlaufen, der Inhalt horizontal scrollt. Wir verwandeln dann das <ul>
in einen Scroll-Snap-Container, der sicherstellt, dass Elemente immer einrasten, wenn der Container mit einem scroll-snap-type
Wert von mandatory
gescrollt wird.
Wir erstellen eine Scroll-Marker-Gruppe mit der scroll-marker-group
Eigenschaft und platzieren die Gruppe nach dem gesamten Inhalt.
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, verwenden die flex
Eigenschaft, um sie auf 33%
der Breite des Containers zu machen. Der scroll-snap-align
Wert von start
bewirkt, dass die linke Seite des links sichtbarsten Elements an die linke Kante des Containers geschnappt wird, wenn der Inhalt gescrollt wird.
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-Marker in einer Reihe mit einem Abstand von 0.2em
zwischen jedem anzuordnen.
li::scroll-marker {
content: " ";
border: 1px solid red;
height: 1em;
width: 1em;
}
::scroll-marker-group {
display: flex;
gap: 0.2em;
}
Um schließlich eine gute Benutzererfahrung zu gewährleisten, gestalten wir den Marker des aktuell gescrollten Elements anders als die anderen und zielen auf den Marker mit der :target-current
Pseudoklasse.
::scroll-marker:target-current {
background: red;
}
Ergebnis
Beachten Sie die Platzierung der Scroll-Marker-Gruppe. Beachten Sie auch, wie die Tastatur-Tab-Reihenfolge für before
versus after
unterschiedlich ist und dass die Gruppe verschwindet, wenn der Wert auf none
gesetzt ist.
Spezifikationen
Specification |
---|
CSS Overflow Module Level 5> # scroll-marker-group-property> |
Browser-Kompatibilität
Loading…
Siehe auch
::scroll-button()
::scroll-marker-group
::scroll-marker
:target-current
- Erstellen von CSS-Karussellen
- CSS-Überlauf Modul
- CSS-Karussell-Galerie über chrome.dev (2025)