Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

: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

css
:target-before {
  /* ... */
}

Beispiele

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.

html
<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.

css
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.

css
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

Browser-Kompatibilität

Siehe auch