:target-before CSS-Pseudoklasse
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die :target-before CSS Pseudoklasse wählt Scrollmarkierungen aus, die sich vor der aktiven Scrollmarkierung befinden (derjenigen, die derzeit mit :target-current übereinstimmt) innerhalb einer Scrollmarkierungsgruppe. Sie können diesen Selektor verwenden, um Navigationselemente zu stylen, die vor der aktuellen Navigationsposition innerhalb einer Scrollmarkierungsgruppe liegen.
Hinweis:
Die Pseudoklasse :target-before ist nur gültig auf ::scroll-marker Pseudoelementen und Elementen, die als Scrollmarkierungen über die Eigenschaft scroll-target-group ausgewiesen wurden.
Syntax
:target-before {
/* ... */
}
Beispiele
>Navigationspunkte vor und nach der aktiven Scrollmarkierung stylen
In diesem Beispiel verwenden wir die Pseudoklassen :target-before und :target-after, um die Scrollmarkierungen vor und nach der aktiven zu hervorzuheben und so anzuzeigen, welche Elemente der Benutzer bereits angesehen hat und welche noch kommen.
HTML
Das Markup enthält ein Inhaltsverzeichnis, das mit Hilfe einer geordneten Liste (<ol>/<li>) und <a> Elementen erstellt wurde. Darauf folgt eine Reihe von <section> Elementen, die Inhalte enthalten.
<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 scroll-target-group: auto auf das <ol> gesetzt, um es in einen Container für die Scrollmarkierungsgruppe zu verwandeln und dem Browser zu erlauben, festzulegen, welches <a> Element zu einem bestimmten Zeitpunkt die aktive Scrollmarkierung ist (d.h. welcher Link gerade sichtbar ist). Anschließend stylen wir die Pseudoklasse :target-current mit einer roten color, damit sie deutlich heraussticht.
ol {
scroll-target-group: auto;
}
:target-current {
color: red;
}
Schließlich verwenden wir die Pseudoklasse :target-before, um alle <a> Elemente vor der aktiven Scrollmarkierung mit einer grauen Farbe und Durchstreichung zu stylen, damit sie abgeschlossen/abgeschlossen aussehen, und wir verwenden die Pseudoklasse :target-after, um alle <a> Elemente nach der aktiven Scrollmarkierung mit einer hellen Unterstreichung zu stylen.
a:target-before {
color: gray;
text-decoration: line-through;
}
a:target-after {
text-decoration: underline orange 2px;
}
Ergebnis
Versuchen Sie, entweder durch Klicken auf die Links oder durch Scrollen zu navigieren. In beiden Fällen werden Sie sehen, dass die rote Textfarbe zwischen den Links wechselt, um dem aktuell sichtbaren Abschnitt zu entsprechen. Die Links vor und nach dem aktuellen roten Link werden ebenfalls aktualisiert, um die in den Regeln a:target-before und a:target-after definierten Stile zu verwenden.
Spezifikationen
| Spezifikation |
|---|
| CSS Overflow Module Level 5> # selectordef-target-before> |