CSS-Pseudoklasse :target-after
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-after CSS Pseudoklasse wählt Scrollmarkierungen aus, die nach der aktiven Scrollmarkierung (diejenige, die derzeit :target-current entspricht) innerhalb einer Scrollmarkierungsgruppe kommen. Sie können diesen Selektor verwenden, um Navigationselemente zu stylen, die nach der aktuellen Navigationsposition innerhalb einer Scrollmarkierungsgruppe kommen.
Hinweis:
Die Pseudoklasse :target-after ist nur gültig auf ::scroll-marker-Pseudoelementen und Elementen, die als Scrollmarkierungen über die Eigenschaft scroll-target-group definiert wurden.
Syntax
:target-after {
/* ... */
}
Beispiele
>Navigationselemente vor und nach der aktiven Scrollmarkierung gestalten
In diesem Beispiel verwenden wir die Pseudoklassen :target-before und :target-after, um die Scrollmarkierungen vor und nach der aktiven zu markieren, was anzeigt, welche Elemente der Benutzer bereits gesehen hat und welche noch folgen.
HTML
Das Markup enthält ein Inhaltsverzeichnis, erstellt mit einer geordneten Liste (<ol>/<li>) und <a>-Elementen. Es folgt eine Reihe von <section>-Elementen mit Inhalt.
<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 die <ol> gesetzt, um sie in einen Scrollmarkierungsgruppen-Container zu verwandeln und dem Browser zu ermöglichen, zu bestimmen, welches <a>-Element zu einem beliebigen Zeitpunkt die aktive Scrollmarkierung ist (also, welcher Link gerade im Sichtfeld ist). Dann stylen wir die Pseudoklasse :target-current mit einer roten color, damit sie deutlich hervorsticht.
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 einem Durchstrich zu stylen, um sie als erledigt/abgeschlossen aussehen zu lassen, 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 sich die rote Textfarbe zwischen den Links bewegt, um der gerade sichtbaren Abschnitt zu entsprechen. Die Links vor und nach dem aktuellen roten Link aktualisieren sich ebenfalls, 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-after> |