Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. CSS
  3. Reference
  4. Selectors
  5. ::scroll-marker-group

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

View in EnglishAlways switch to English

::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 eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Das::scroll-marker-groupCSSPseudo-Element wird innerhalb einesScroll-Containers generiert und enthält alle::scroll-marker Pseudo-Elemente, die bei Nachkommen des Scroll-Containers generiert werden.

Syntax

css
::scroll-marker-group {  /* ... */}

Beschreibung

Das::scroll-marker-group Pseudo-Element eines Scroll-Containers repräsentiert einenScroll-Marker-Gruppencontainer. Dies ist ein Container, der automatisch alle auf sich selbst oder seinen Nachkommen generierten::scroll-marker Pseudo-Elemente enthält. Dadurch können sie als Gruppe positioniert und gestaltet werden. Dieses Pseudo-Element wird typischerweise verwendet, um bei der Erstellung eines CSS-Karussells einen Scroll-Positionsindikator bereitzustellen. Die einzelnen Scroll-Markierungen können verwendet werden, um zu ihren zugehörigen Inhaltsobjekten zu navigieren.

Der Scroll-Container muss diescroll-marker-group-Eigenschaft auf einen Wert ungleichnone gesetzt haben, damit das::scroll-marker-group Pseudo-Element generiert wird. Derscroll-marker-group-Wert bestimmt, wo der Scroll-Marker-Gruppencontainer in der Tab-Reihenfolge und in der Layout-Box-Reihenfolge des Karussells erscheint (aber nicht in der DOM-Struktur) —before platziert ihn am Anfang, währendafter ihn am Ende platziert.

Hinweis:Alternativ kann ein Scroll-Marker-Gruppencontainer aus einem vorhandenen Element erstellt werden, das eine Gruppe von<a>-Elementen enthält, unter Verwendung vonscroll-target-group.

Als bewährte Methode für die Barrierefreiheit sollte die visuelle Position des Scroll-Marker-Gruppencontainers mit der Tab-Reihenfolge übereinstimmen. Wenn die Gruppe am Anfang des Inhalts positioniert wird, setzen Sie sie mitbefore am Anfang der Tab-Reihenfolge. Wenn die Gruppe am Ende des Inhalts positioniert wird, setzen Sie sie mitafter am Ende der Tab-Reihenfolge.

Wenn ein Scroll-Marker-Gruppencontainer auf einem Scroll-Container mit derscroll-marker-group Eigenschaft erstellt wird, wird der Scroll-Container mittablist/tab Semantik gerendert. Sie können mit der Tastatur zu ihmTab wechseln und dann mit den Links- und Rechts- (oder Auf- und Ab-) Pfeiltasten zwischen den verschiedenen "Seiten" wechseln, was auch den Zustand der zugehörigen Scroll-Markierungen und Scroll-Tasten wie erwartet ändert. Die Scroll-Markierungen können auch wie erwartet normal über die Tab-Taste durchlaufen werden.

Beispiele

SieheErstellung von CSS-Karussells für weitere Beispiele, die das::scroll-marker Pseudo-Element verwenden.

Erstellung von Karussell-Scroll-Markierungen

Diese Demo zeigt ein Karussell mit einzelnen Seiten, wobei jedes Element die gesamte Seite einnimmt. Wir haben Scroll-Markierungen hinzugefügt, um den Benutzer zu ermöglichen, mit einem Klick auf eine Markierung zu einer beliebigen Seite zu navigieren.

HTML

Das HTML besteht aus einerungeordneten Liste , wobei jederListeneintrag einige Beispielinhalte enthält:

html
<ul>  <li>    <h2>Page 1</h2>  </li>  <li>    <h2>Page 2</h2>  </li>  <li>    <h2>Page 3</h2>  </li>  <li>    <h2>Page 4</h2>  </li></ul>

CSS

Wir wandeln zuerst unsere<ul> in ein Karussell um, indem wir dendisplay aufflex setzen, wodurch eine einzelne, nicht umschließende Zeile von<li>-Elementen entsteht. Dieoverflow-x-Eigenschaft wird aufauto gesetzt, was bedeutet, dass der Inhalt horizontal scrollt, wenn die Elemente an der x-Achse ihren Container überlaufen. Dann wandeln wir die<ul> in einenScroll-Snap-Container um, der sicherstellt, dass die Elemente immer einrasten, wenn der Container mit einemscroll-snap-type-Wert vonmandatory gescrollt wird.

* {  box-sizing: border-box;}body {  margin: 0;  font-family: "Helvetica", "Arial", sans-serif;}
css
ul {  display: flex;  gap: 4vw;  padding-left: 0;  overflow-x: auto;  overscroll-behavior-x: contain;  scroll-snap-type: x mandatory;}

Als nächstes stylen wir die<li>-Elemente, indem wir dieflex-Eigenschaft verwenden, um sie100% der Breite des Containers ausfüllen zu lassen. Derscroll-snap-align Wert vonstart bewirkt, dass die linke Seite des am weitesten links sichtbaren Elements beim Scrollen des Inhalts an die linke Kante des Containers anrastet.

css
li {  list-style-type: none;  background-color: #eeeeee;  flex: 0 0 100%;  height: 200px;  padding-top: 20px;  scroll-snap-align: start;  text-align: center;}

Der nächsten Schritt besteht darin, diescroll-marker-group Eigenschaft der Liste aufafter zu setzen, sodass das::scroll-marker-group Pseudo-Element nach dem DOM-Inhalt der Liste in der Tab-Reihenfolge und der Layout-Box-Reihenfolge platziert wird; das bedeutet, dass es nach den Scroll-Schaltflächen kommt:

css
ul {  scroll-marker-group: after;}

Anschließend wird das::scroll-marker-group Pseudo-Element der Liste mit Flexbox ausgelegt, wobei einjustify-content Wert voncenter und eingap von20px verwendet wird, sodass seine Kinder (die::scroll-marker Pseudo-Elemente) in der Mitte des::scroll-marker-group mit einem Abstand zwischen jedem positioniert sind.

css
ul::scroll-marker-group {  display: flex;  justify-content: center;  gap: 20px;}

Die Scroll-Markierungen selbst werden danach gestylt. Das Aussehen jeder Markierung wird durch die Einstellungen vonwidth,height,background-color,border undborder-radius gehandhabt, aber wir müssen auch einen Wert ungleichnone für diecontent Eigenschaft setzen, damit sie tatsächlich generiert werden.

css
li::scroll-marker {  width: 16px;  height: 16px;  background-color: transparent;  border: 2px solid black;  border-radius: 50%;  content: "";}

Hinweis:Generierter Inhalt ist standardmäßig inline; wir könnenwidth undheight auf unsere Scroll-Markierungen anwenden, da sie als Flexitems ausgelegt werden.

Schließlich wird die:target-current Pseudoklasse verwendet, um die Scroll-Markierung auszuwählen, die der aktuell sichtbaren "Seite" entspricht und zeigt, wie weit der Benutzer durch den Inhalt gescrollt hat. In diesem Fall setzen wir diebackground-color aufblack, sodass sie als ausgefüllter Kreis gestylt wird.

css
li::scroll-marker:target-current {  background-color: black;}

Ergebnis

Positionieren des Scroll-Marker-Gruppencontainers mit Anker-Positionierung

Dieses Beispiel erweitert das vorhergehende und zeigt die Verwendung derCSS-Anker-Positionierung, um den Scroll-Marker-Gruppencontainer relativ zum Karussell zu positionieren.

CSS

Das::scroll-marker-group Pseudo-Element der Liste wird relativ zum Karussell unter Verwendung der CSS Anker-Positionierung positioniert, indem der Gruppe ein Wert fürposition-anchor gegeben wird, der mit demanchor-name der<ul> übereinstimmt. Wir positionieren dann die Gruppe relativ zum Scroll-Container in Blockrichtung, indem wir einentop Wert setzen, der eineanchor() Funktion enthält. Wir fügen auch einenjustify-self Wert vonanchor-center hinzu, der die Gruppe im Inline-Richtung im Zentrum des Scroll-Containers ausrichtet.

css
ul {  anchor-name: --my-carousel;}ul::scroll-marker-group {  /* From the previous example */  display: flex;  gap: 20px;  position: absolute;  position-anchor: --my-carousel;  top: calc(anchor(bottom) - 70px);  justify-self: anchor-center;}

Ergebnis

Spezifikationen

Specification
CSS Overflow Module Level 5
# scroll-marker-group-pseudo

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp