Pseudo-Elemente

Ein CSS-Pseudo-Element ist ein Schlüsselwort, das einem Selektor hinzugefügt wird, um einen bestimmten Teil des ausgewählten Elements oder der ausgewählten Elemente zu gestalten.

Syntax

css
selector::pseudo-element {
  property: value;
}

Zum Beispiel kann ::first-line verwendet werden, um die Schriftart der ersten Zeile eines Absatzes zu ändern.

css
/* The first line of every <p> element. */
p::first-line {
  color: blue;
  text-transform: uppercase;
}

Doppelte Doppelpunkte (::) werden für Pseudo-Elemente verwendet. Dies unterscheidet Pseudo-Elemente von Pseudo-Klassen, die in ihrer Notation einen einzelnen Doppelpunkt (:) verwenden. Beachten Sie, dass Browser die einzelne Doppelpunkt-Syntax für die ursprünglichen vier Pseudo-Elemente unterstützen: ::before, ::after, ::first-line, und ::first-letter.

Pseudo-Elemente existieren nicht unabhängig. Das Element, dessen Teil ein Pseudo-Element ist, wird als sein ursprüngliches Element bezeichnet. Ein Pseudo-Element muss nach allen anderen Komponenten im komplexen oder zusammengesetzten Selektor erscheinen. Das letzte Element im Selektor ist das ursprüngliche Element des Pseudo-Elements. Zum Beispiel können Sie die erste Zeile eines Absatzes mit p::first-line auswählen, aber nicht die Kinder der ersten Zeile. Daher ist p::first-line > * ungültig.

Ein Pseudo-Element kann basierend auf dem aktuellen Zustand des ursprünglichen Elements ausgewählt werden. Zum Beispiel wählt p:hover::first-line die erste Zeile (Pseudo-Element) eines Absatzes, wenn der Absatz selbst gehobert wird (Pseudo-Klasse).

Hinweis: Wenn eine Selektorliste einen ungültigen Selektor enthält, wird der gesamte Stilblock ignoriert.

Typografische Pseudo-Elemente

::first-line

Die erste Zeilenbox des ursprünglichen Elements.

::first-letter

Der erste Buchstabe, die erste Zahl oder das Symbolzeichen in der ersten Zeile seines ursprünglichen Elements.

::cue

Die WebVTT-Cues innerhalb eines ausgewählten Elements. Dies kann verwendet werden, um Untertitel und andere Cues zu gestalten in Medien mit VTT-Tracks. Das Modul der CSS-Pseudo-Elemente definiert auch die ::postfix und ::prefix Sub-Pseudo-Elemente. Diese werden derzeit von keinem Browser unterstützt.

Hervorhebungs-Pseudo-Elemente

Wählt Dokumentabschnitte basierend auf Inhalt und Dokumentstatus aus und ermöglicht es, diese Bereiche unterschiedlich zu gestalten, um den Status dem Nutzer anzuzeigen.

::selection

Der Abschnitt eines Dokuments, der ausgewählt wurde.

::target-text

Das Ziel-Element des Dokuments. Das Ziel-Element wird über den Fragmentbezeichner der URL identifiziert.

::spelling-error

Ein Textabschnitt, den der Browser für falsch geschrieben hält.

::grammar-error

Ein Textabschnitt, den der Browser für grammatikalisch falsch hält.

::highlight()

Die Elemente im Highlight-Register. Es wird verwendet, um benutzerdefinierte Highlights zu erstellen.

Baumkonforme Pseudo-Elemente

Diese Pseudo-Elemente verhalten sich wie reguläre Elemente und passen nahtlos in das Boxmodell. Sie agieren als Kindelement, das direkt innerhalb der Hierarchie des ursprünglichen Elements gestaltet werden kann.

::before

Erzeugt ein Pseudo-Element, das das erste Kindelement des ausgewählten Elements ist.

::after

Erzeugt ein Pseudo-Element, das das letzte Kindelement des ausgewählten Elements ist.

::column

Jedes Spaltenfragment eines Mehrspalten-Layouts.

::marker

Der automatisch generierte Marker-Box eines Listenelements.

::backdrop

Der Hintergrund des ursprünglichen Elements, das in der Top-Schicht gerendert wird.

::scroll-button()

Erstellt einen Knopf, der das Scrollen des Scroll-Containers steuern kann, auf den er angewendet wird.

::scroll-marker

Erstellt ein Pseudo-Element, das ein Scroll-Marker ist — ein Scroll-Zielknopf für sein ursprüngliches Element, das in einer Scroll-Marker-Gruppe verschachtelt ist.

::scroll-marker-group

Erzeugt einen Container vor oder nach einem Scroll-Container, um die ::scroll-marker Pseudo-Elemente zu enthalten, die auf dem Element oder seinen Nachkommen erzeugt werden.

Elementgestützte Pseudo-Elemente

Diese Pseudo-Elemente sind reale Elemente, die nicht anderweitig auswählbar sind.

::details-content

Der erweiterbare/zusammenklappbare Inhalt eines <details>-Elements.

::part()

Jedes Element innerhalb eines Shadow Trees, das ein passendes part-Attribut hat.

::slotted()

Jedes Element, das in einen Slot innerhalb einer HTML-Vorlage platziert wurde.

Formularbezogene Pseudo-Elemente

Die Pseudo-Elemente beziehen sich auf Formularelemente.

::checkmark

Zielt auf das Häkchen ab, das im aktuell ausgewählten <option>-Element eines anpassbaren Auswahl-Elements platziert ist, um visuell anzuzeigen, welches ausgewählt ist.

::file-selector-button

Der Knopf eines <input> vom type="file".

::picker()

Der Picker-Teil eines Elements, zum Beispiel der Dropdown-Picker eines anpassbaren Auswahl-Elements.

::picker-icon

Das Picker-Symbol innerhalb von Formularelementen, die ein Symbol damit verbunden haben. Im Falle eines anpassbaren Auswahl-Elements wählt es den Pfeil aus, der nach unten zeigt, wenn die Auswahl geschlossen ist.

::placeholder

Der Platzhaltertext in einem Eingabefeld.

Alphabetisches Verzeichnis

Verschachtelung von Pseudo-Elementen

Sie können einige Pseudo-Element-Selektoren miteinander verketten, um verschachtelte Pseudo-Elemente innerhalb anderer Pseudo-Elemente zu gestalten. Die folgenden verschachtelten Pseudo-Element-Kombinationen werden unterstützt:

  • ::after
    • ::after::marker: Wählt das ::marker Pseudo-Element eines ::after Pseudo-Elements aus, wenn ::after als Listenelement gestaltet ist, mit display: list-item.
  • ::before
    • ::before::marker: Wählt das ::marker Pseudo-Element eines ::before Pseudo-Elements aus, wenn ::before als Listenelement gestaltet ist, mit display: list-item.

Sehen Sie sich die einzelnen Referenzseiten zu den Pseudo-Elementen für Beispiele und Informationen zur Browser-Kompatibilität an.

Spezifikationen

Specification
CSS Pseudo-Elements Module Level 4
CSS Positioned Layout Module Level 4
CSS Shadow Parts
WebVTT: The Web Video Text Tracks Format

Siehe auch