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

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 Pseudo-Klasse wählt Scroll-Markierungen aus, die sich vor der aktiven Scroll-Markierung (diejenige, die derzeit :target-current entspricht) innerhalb einer Scroll-Markierungsgruppe befinden. Sie können diesen Selektor verwenden, um Navigationspunkte vor der aktuellen Navigationsposition innerhalb einer Scroll-Markierungsgruppe zu gestalten.

Hinweis: Die :target-before Pseudoklasse ist nur gültig auf ::scroll-marker Pseudoelementen und Elementen, die als Scroll-Markierungen über die scroll-target-group Eigenschaft festgelegt wurden.

Syntax

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

Beispiele

Styling von Navigationselementen vor und nach der aktiven Scrollmarke

In diesem Beispiel verwenden wir die :target-before und :target-after Pseudo-Klassen, um die Scroll-Markierungen vor und nach der aktiven zu kennzeichnen. Dadurch werden Elemente angezeigt, die der Benutzer bereits gesehen hat, und solche, die noch kommen.

HTML

Das Markup enthält ein Inhaltsverzeichnis, das mit einer geordneten Liste (<ol>/<li>) und <a> Elementen erstellt wurde. Dies wird von einer Reihe von <section> Elementen mit Inhalten gefolgt.

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 Scroll-Markierungsgruppen-Container zu verwandeln und dem Browser die Entscheidung zu überlassen, welches <a> Element die aktive Scroll-Markierung zu einem bestimmten Zeitpunkt ist (also welcher Link aktuell im Blickfeld ist). Wir gestalten dann die :target-current Pseudoklasse mit einer roten color, damit sie deutlich heraussticht.

css
ol {
  scroll-target-group: auto;
}

:target-current {
  color: red;
}

Schließlich verwenden wir die :target-before Pseudoklasse, um alle <a> Elemente vor der aktiven Scroll-Markierung mit einer grauen Farbe und Durchstreichung zu gestalten, um sie abgeschlossen/fertig aussehen zu lassen. Wir verwenden die :target-after Pseudoklasse, um alle <a> Elemente nach der aktiven Scroll-Markierung 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, durch Klicken auf die Links oder durch Scrollen zu navigieren. In beiden Fällen sehen Sie, dass die rote Textfarbe zwischen den Links wechselt, um mit dem aktuellen Abschnitt im Sichtfeld übereinzustimmen. Die Links vor und nach dem aktuellen roten Link werden ebenfalls aktualisiert, um die in den a:target-before und a:target-after Regeln definierten Stile zu verwenden.

Spezifikationen

Specification
CSS Overflow Module Level 5
# selectordef-target-before

Browser-Kompatibilität

Siehe auch