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-Marker-Gruppen-Container 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 Eigenschaft scroll-target-group wird als einer der folgenden Schlüsselwortwerte angegeben:
Werte
Beschreibung
Das Festlegen von scroll-target-group: auto auf einem Element kennzeichnet es als Scroll-Marker-Gruppen-Container. Dies gruppiert eine Menge von Navigationselementen, die es den Benutzern ermöglichen, zwischen Elementen auf einer Seite zu navigieren (wie Karussell-Elementen oder Artikelsektionen) und hervorzuheben, welches Element derzeit im Sichtbereich ist.
Alle <a> Elemente mit Fragmentbezeichnern innerhalb des Containers werden automatisch als Scroll-Marker festgelegt. Das Ankerelement, dessen Scroll-Ziel derzeit sichtbar ist, kann mit der :target-current Pseudoklasse gestylt werden.
Unterschiede zwischen scroll-target-group und scroll-marker-group
Scroll-Marker-Gruppen-Container, die mit scroll-target-group erstellt wurden, verhalten sich sehr ähnlich wie diejenigen, die mit der scroll-marker-group Eigenschaft erstellt wurden, mit einigen Unterschieden:
- Mit
scroll-target-groupmüssen Sie Ihr eigenes Markup erstellen, um den Scroll-Marker-Gruppen-Container und die Scroll-Marker darzustellen, währendscroll-marker-groupautomatisch ein Set von Pseudoelementen erstellt, um den Container (::scroll-marker-group) und die Marker (eine oder mehrere Instanzen von::scroll-marker) darzustellen. Diese haben automatisch die erwarteten Navigationszuordnungen zum Scroll-Container, auf dem sie erzeugt werden. Die Verwendung vonscroll-marker-groupbietet eine schnellere Einrichtung, da Sie kein eigenes Markup verwenden müssen. Allerdings bietet das Erstellen Ihres eigenen Markups und das Festlegen als Scroll-Marker-Gruppen-Container überscroll-target-groupmehr Kontrolle und Flexibilität. - Links, die über
scroll-target-groupals Scroll-Marker gekennzeichnet sind, haben kein spezielles Navigationsverhalten, während Marker, die überscroll-marker-groupgeneriert werden, automatisch dietablist/tabSemantik aufweisen, was bedeutet, dass sie wie ein einzelnes Element in der Tab-Reihenfolge agieren, und Benutzer können mit den Pfeiltasten zwischen Scroll-Markern wechseln. Erneut bietetscroll-marker-groupnützliches Standardverhalten, aber Sie haben die Flexibilität, alternative Semantik und Verhalten für Marker bereitzustellen, die mitscroll-target-groupfestgelegt wurden.
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 zu verschiedenen Abschnitten verlinkt.
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
Der Großteil der Formatierung wurde der Kürze halber ausgeblendet. Am wichtigsten für dieses Beispiel ist, dass wir scroll-target-group: auto auf das <ol> gesetzt haben, um es in einen Scroll-Marker-Gruppen-Container zu verwandeln und den Algorithmus des Browsers zu aktivieren, der berechnet, welches <a>-Element zu einem bestimmten Zeitpunkt das :target-current ist (d.h. welches Verknüpfungsziel derzeit sichtbar ist). Wir stylen dann die :target-current Pseudoklasse mit einer roten 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 sich in jedem Fall das rote Highlight zwischen den Links bewegt, um den gerade sichtbaren Abschnitt anzuzeigen.
CSS-Karussell mit scroll-target-group Scroll-Marker
Dieses Beispiel zeigt, wie man CSS-Karussell Scroll-Marker mit scroll-target-group erstellt. Der Code für dieses Beispiel ähnelt unserem Karussell mit Einzelseiten Beispiel; wir erklären nur die Unterschiede unten.
HTML
Das Markup hat IDs auf den Listenelementen gesetzt, die jede Seite definieren, und eine geordnete Liste hinzugefügt, die wir mithilfe von CSS in einen Scroll-Marker-Gruppen-Container verwandeln 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-Marker-Gruppen-Container und die Scroll-Marker, indem wir scroll-target-group auf das <ol>-Element setzen. Der Rest des Codes zum Stylen dieser ist sehr ähnlich, außer dass wir Elemente unserer Wahl (<ol> und <a>) anstelle der ::scroll-marker-group und ::scroll-marker Pseudoelemente anvisieren.
Wir vervollständigen den Code, indem wir einige Stile auf die :target-current, a:hover und a:focus Zustände setzen, um anzuzeigen, welche Seite derzeit angezeigt wird und welche Links gerade anvisiert/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: indem Sie die Scroll-Marker-Links aktivieren, horizontal scrollen oder die Scroll-Schaltflächen auf einer der Seiten drücken. Sie werden sehen, dass sich in jedem Fall das Highlight zwischen den Links bewegt, um den gerade sichtbaren Abschnitt anzuzeigen.
Spezifikationen
| Specification |
|---|
| CSS Overflow Module Level 5> # scroll-target-group> |
Browser-Kompatibilität
Siehe auch
scroll-marker-group::scroll-marker-groupund::scroll-markerPseudoelemente:target-current,:target-before, und:target-afterPseudoklassen- CSS-Karussells erstellen
- CSS Überlauf Modul