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 Element ein ::scroll-marker-group
Pseudoelement erzeugt. Falls vorhanden, gibt die Eigenschaft auch an, ob die Scroll-Marker-Gruppe before
oder after
dem Inhalt des Scroll-Gruppencontainers in der Standard-Bild- und Tabulatorreihenfolge platziert werden soll.
Hinweis:
Um einen Scroll-Marker-Gruppencontainer aus einem vorhandenen Element zu erstellen, das eine Menge von <a>
Elementen enthält, verwenden Sie die scroll-target-group
Eigenschaft. Lesen Sie über die Unterschiede im Verhalten zwischen den beiden.
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 Kindelemente des Scrollcontainers generiert, unmittelbar vor diesen und allen generierten::scroll-button()
Pseudoelementen. Es erscheint am Ende der Tabulatorreihenfolge und der Layoutreihenfolge des Containers (nicht aber der DOM-Struktur). before
-
Ein
::scroll-marker-group
Pseudoelement wird als Geschwister der Kindelemente des Scrollcontainers generiert, unmittelbar vor diesen und allen generierten::scroll-button()
Pseudoelementen. Die Scroll-Marker-Gruppe erscheint am Anfang der Tabulatorreihenfolge und der Layoutreihenfolge des Containers. none
-
Es wird kein
::scroll-marker-group
Pseudoelement auf dem Element erzeugt. Dies ist der Standardwert.
Hinweis:
Als bewährte Praktik im Bereich der Barrierefreiheit stimmen Sie die visuelle Position der Scroll-Marker-Gruppencontainer mit der Tabulatorreihenfolge ab. Wenn Sie die Markergruppe am Anfang des Inhalts mit Stilen auf ::scroll-marker-group
positionieren, platzieren Sie sie am Anfang der Tabulatorreihenfolge mit before
. Wenn Sie die Gruppe am Ende des Inhalts positionieren, platzieren Sie sie am Ende der Tabulatorreihenfolge mit after
.
Formale Definition
Wert in der Datenbank nicht gefunden!Formale Syntax
scroll-marker-group =
none |
before |
after
Beispiele
Sehen Sie sich Erstellen von CSS-Karussellen für vollständige Beispiele an, 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 das display
auf flex
setzen und eine einzelne, nicht umbrechende Reihe von <li>
Elementen erstellen. Die overflow-x
Eigenschaft wird auf auto
gesetzt, was bedeutet, dass der Inhalt horizontal scrollt, wenn die Elemente ihren Container in der x-Achse überlaufen. Wir wandeln dann das <ul>
in einen Scroll-Snap-Container um, 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-Marker-Gruppencontainer 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, indem wir die flex
Eigenschaft nutzen, um sie 33%
der Breite des Containers ausmachen zu lassen. 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.
li {
list-style-type: none;
background-color: #eeeeee;
flex: 0 0 33%;
scroll-snap-align: start;
text-align: center;
line-height: 5;
}
Wir nutzen dann das ::scroll-marker
Pseudoelement, um für jedes Listenelement einen quadratischen Marker mit einem roten 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;
}
Schließlich, um ein gutes Benutzererlebnis zu gewährleisten, gestalten wir den Marker des aktuell gescrollten Elements anders als die anderen, indem wir den Marker mit der :target-current
Pseudoklasse ansprechen.
::scroll-marker:target-current {
background: red;
}
Ergebnis
Beachten Sie die Platzierung des Scroll-Marker-Gruppencontainers. Schauen Sie, wie sich die Tabulatorreihenfolge auf der Tastatur für before
gegenüber after
unterscheidet, und beachten Sie, wie die Gruppe verschwindet, wenn der Wert auf none
gesetzt wird.
Spezifikationen
Specification |
---|
CSS Overflow Module Level 5 # scroll-marker-group-property |
Browser-Kompatibilität
Loading…