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-group
müssen Sie Ihr eigenes Markup erstellen, um den Scroll-Markierungs-Gruppencontainer und die Scroll-Markierungen darzustellen, währendscroll-marker-group
automatisch 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-group
bietet 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-group
bietet jedoch mehr Kontrolle und Flexibilität. - Links, die durch
scroll-target-group
als Scroll-Markierungen gekennzeichnet sind, haben kein besonderes Navigationsverhalten, während Markierungen, die überscroll-marker-group
generiert werden, automatischtablist
/tab
Semantik 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-group
nützliches Standardverhalten, aber Sie haben die Flexibilität, alternative Semantik und Verhalten für mitscroll-target-group
angegebene 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-group
und::scroll-marker
Pseudo-Elemente:target-current
Pseudo-Klasse- Erstellen von CSS-Karussells
- CSS-Überlauf Modul