scroll-target-group
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die scroll-target-group CSS Eigenschaft legt fest, ob ein Element ein Scroll-Markierungs-Gruppencontainer ist.
Syntax
/* Keyword values */
scroll-target-group: none;
scroll-target-group: auto;
/* Global values */
scroll-target-group: inherit;
scroll-target-group: initial;
scroll-target-group: revert;
scroll-target-group: revert-layer;
scroll-target-group: unset;
Die scroll-target-group Eigenschaft wird als einer der folgenden Schlüsselwortwerte angegeben:
Werte
Beschreibung
Durch das Setzen von scroll-target-group: auto auf ein Element wird es als Scroll-Markierungs-Gruppencontainer definiert. Dies gruppiert eine Reihe von Navigationselementen zusammen, die es Nutzern ermöglichen, zwischen Elementen auf einer Seite zu navigieren (wie z.B. Karussell-Elemente oder Artikelabschnitte) und hervorzuheben, welches Element derzeit im Sichtfeld ist.
Alle <a> Elemente mit Fragment-Identifikatoren innerhalb des Containers werden automatisch als Scroll-Markierungen festgelegt. Das Ankerelement, dessen Scroll-Ziel derzeit im Sichtfeld ist, kann über die :target-current Pseudo-Klasse gestylt werden.
Unterschiede zwischen scroll-target-group und scroll-marker-group
Scroll-Markierungs-Gruppencontainer, die mit scroll-target-group erstellt wurden, verhalten sich sehr ähnlich wie die, die mit der scroll-marker-group Eigenschaft erstellt wurden, mit einigen Unterschieden:
- Bei
scroll-target-groupmüssen Sie Ihr eigenes Markup erstellen, um den Scroll-Markierungs-Gruppencontainer und die Scroll-Markierungen darzustellen, währendscroll-marker-groupautomatisch eine Reihe von Pseudo-Elementen erstellt, um den Container (::scroll-marker-group) und die Markierungen (eine oder mehrere Instanzen von::scroll-marker) darzustellen. Diese haben automatisch die erwarteten Navigationszuordnungen mit dem Scroll-Container, auf dem sie generiert werden. Die Verwendung vonscroll-marker-groupbietet eine schnellere Einrichtung, da Sie kein eigenes Markup verwenden müssen. Das Erstellen Ihres eigenen Markups und dessen Festlegung als Scroll-Markierungs-Gruppencontainer überscroll-target-groupbietet jedoch mehr Kontrolle und Flexibilität. - Links, die durch
scroll-target-groupals Scroll-Markierungen gekennzeichnet sind, haben kein besonderes Navigationsverhalten, während Markierungen, die überscroll-marker-groupgeneriert werden, automatischtablist/tabSemantik angewendet bekommen, was bedeutet, dass sie sich wie ein einzelnes Element in der Tabulatorreihenfolge verhalten und Nutzer mit den Pfeiltasten zwischen Scroll-Markierungen wechseln können. Auch hier bietetscroll-marker-groupnützliches Standardverhalten, aber Sie haben die Flexibilität, alternative Semantik und Verhalten für mitscroll-target-groupangegebene Markierungen bereitzustellen.
Formale Definition
Wert in der Datenbank nicht gefunden!Formale Syntax
scroll-target-group =
none |
auto
Beispiele
>Grundlegende Verwendung von scroll-target-group
Dieses Beispiel zeigt eine Seite mit einem Inhaltsverzeichnis, das auf verschiedene Abschnitte verweist.
HTML
Unser Markup enthält eine Reihe von <section>-Elementen mit Inhalt und ein Inhaltsverzeichnis, das mit einer geordneten Liste (<ol>/<li>) und <a>-Elementen erstellt wurde.
<nav id="toc">
<ol>
<li><a href="#intro">Introduction</a></li>
<li><a href="#ch1">Chapter 1</a></li>
<li><a href="#ch2">Chapter 2</a></li>
<li><a href="#ch3">Chapter 3</a></li>
<li><a href="#ch4">Chapter 4</a></li>
</ol>
</nav>
<section id="intro" class="chapter">
<h1>Prose of the century</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus
aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci,
pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at
ultricies tellus laoreet sit amet.
</p>
</section>
<section id="ch1" class="chapter">
<h2>Chapter 1</h2>
<!-- ... -->
</section>
<section id="ch2" class="chapter">
<h2>Chapter 2</h2>
<!-- ... -->
</section>
<!-- ... -->
CSS
Wir haben die meisten Formatierungen der Kürze halber ausgeblendet. Für dieses Beispiel haben wir scroll-target-group: auto auf das <ol> gesetzt, um es in einen Scroll-Markierungs-Gruppencontainer zu verwandeln und den Algorithmus des Browsers auszulösen, der berechnet, welches <a>-Element zu einem bestimmten Zeitpunkt das :target-current ist (d.h. welches Ziel des Links gerade im Blickfeld ist). Wir stylen dann die :target-current Pseudo-Klasse mit einer red color, damit sie deutlich hervorsticht.
ol {
scroll-target-group: auto;
}
:target-current {
color: red;
}
Ergebnis
Versuchen Sie, durch Aktivieren der Links und durch Scrollen zu navigieren. Sie werden sehen, dass in jedem Fall das rote Highlight zwischen den Links wechselt, um den Abschnitt zu markieren, der gerade angezeigt wird.
CSS-Karussell mit scroll-target-group Scroll-Markierungen
Dieses Beispiel zeigt, wie man CSS-Karussell Scroll-Markierungen mit scroll-target-group erstellt. Der Code für dieses Beispiel ähnelt unserem Karussell mit einzelnen Seiten Beispiel; wir erklären unten nur die Unterschiede.
HTML
Das Markup hat IDs auf den Listenelementen, die jede Seite definieren, und eine geordnete Liste hinzugefügt, die wir mit CSS in einen Scroll-Markierungs-Gruppencontainer umwandeln werden.
<h1>CSS carousel single item per page</h1>
<ul>
<li id="page1">
<h2>Page 1</h2>
</li>
<li id="page2">
<h2>Page 2</h2>
</li>
<li id="page3">
<h2>Page 3</h2>
</li>
<li id="page4">
<h2>Page 4</h2>
</li>
</ul>
<ol>
<li><a href="#page1">1</a></li>
<li><a href="#page2">2</a></li>
<li><a href="#page3">3</a></li>
<li><a href="#page4">4</a></li>
</ol>
CSS
Wir erstellen den Scroll-Markierungs-Gruppencontainer und die Scroll-Markierungen, indem wir scroll-target-group auf das <ol>-Element setzen. Der Rest des Codes zur Formatierung dieser ist sehr ähnlich, außer dass wir Elemente unserer Wahl (<ol> und <a>) anstelle der ::scroll-marker-group und ::scroll-marker Pseudo-Elemente anvisieren.
Wir vervollständigen den Code, indem wir einige Stile auf die :target-current, a:hover und a:focus Zustände anwenden, um anzuzeigen, welche Seite gerade angezeigt wird und welche Links gerade berührt/fokussiert werden.
ol {
position: absolute;
position-anchor: --my-carousel;
top: calc(anchor(bottom) - 90px);
justify-self: anchor-center;
display: flex;
justify-content: center;
gap: 20px;
list-style-type: none;
padding: 0;
scroll-target-group: auto;
}
ol a {
width: 28px;
height: 28px;
display: inline-block;
text-align: center;
text-decoration: none;
padding-top: 4px;
color: black;
background-color: transparent;
border: 2px solid black;
border-radius: 50%;
}
ol a:hover,
ol a:focus,
:target-current {
background-color: black;
color: white;
}
Ergebnis
Versuchen Sie, auf jede dieser drei Arten zu navigieren: durch Aktivieren der Scroll-Markierungs-Links, durch horizontales Scrollen oder durch Drücken der Scroll-Tasten auf beiden Seiten. Sie werden sehen, dass in jedem Fall das Highlight zwischen den Links wechselt, um den Abschnitt zu markieren, der gerade angezeigt wird.
Spezifikationen
| Specification |
|---|
| CSS Overflow Module Level 5> # scroll-target-group> |
Browser-Kompatibilität
Loading…
Siehe auch
scroll-marker-group::scroll-marker-groupund::scroll-markerPseudo-Elemente:target-currentPseudo-Klasse- Erstellen von CSS-Karussells
- CSS-Überlauf Modul