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

View in English Always switch to English

Pseudo-Elemente

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

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 einen einzelnen Doppelpunkt (:) in ihrer Notation verwenden. Beachten Sie, dass Browser aufgrund der Unterstützung der einfachen Doppelpunktsyntax für die ursprünglichen vier Pseudo-Elemente ::before, ::after, ::first-line und ::first-letter die einfache Doppelpunktsyntax unterstützen.

Pseudo-Elemente existieren nicht unabhängig. Das Element, von dem ein Pseudo-Element ein Teil ist, wird als 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, jedoch 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 aus, wenn der Absatz selbst gehovt 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 Symbol auf der ersten Zeile des ursprünglichen Elements.

::cue

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

Hervorhebungs-Pseudo-Elemente

Wählen Sie Dokumentabschnitte basierend auf dem Inhalt und Dokumentstatus aus, um diese Bereiche anders zu stylen, um diesen Status dem Benutzer anzuzeigen.

::selection

Der Teil eines Dokuments, der ausgewählt wurde.

::target-text

Das Zieldokumentelement. Das Zieldokumentelement wird mit dem Fragment-Identifikator der URL identifiziert.

::spelling-error

Ein Textabschnitt, den der Browser als falsch geschrieben ansieht.

::grammar-error

Ein Textabschnitt, den der Browser als grammatikalisch inkorrekt ansieht.

::highlight()

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

Baumkonforme Pseudo-Elemente

Diese Pseudo-Elemente verhalten sich wie reguläre Elemente, indem sie nahtlos innerhalb des Box-Modells passen. Sie wirken als Kindelement, das direkt innerhalb der Hierarchie des ursprünglichen Elements gestylt werden kann.

::before

Erstellt ein Pseudo-Element, das das erste Kindelement des ausgewählten Elementes ist.

::after

Erstellt ein Pseudo-Element, das das letzte Kindelement des ausgewählten Elementes ist.

::column

Jedes Spaltenfragment eines Mehrspaltenlayouts.

::marker

Die automatisch generierte Markierungsbox eines Listenelements.

::backdrop

Der Hintergrund des ursprünglichen Elements, das im Top-Layer gerendert wird.

::scroll-button()

Erstellt eine Schaltfläche, die das Scrollen des Scroll-Containers steuern kann, auf den es angewendet wurde.

::scroll-marker

Erstellt ein Pseudo-Element, das ein Scroll-Marker ist – eine Scroll-Zielschaltfläche für sein ursprüngliches Element, das in einer Scroll-Marker-Gruppe verschachtelt ist.

::scroll-marker-group

Generiert einen Container vor einem Scroll-Container, um die ::scroll-marker Pseudo-Elemente zu enthalten, die auf dem Element oder seinen Nachfahren generiert werden.

Elemente-gestützte Pseudo-Elemente

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

::details-content

Die ausklappbaren/in collaps-Möglichkeiten-Inhalte eines <details> Elements.

::part()

Jedes Element innerhalb eines Shadow Tree, das ein übereinstimmendes part Attribut hat.

::slotted()

Jedes Element, das in einen Slot innerhalb eines HTML-Templates eingefügt wird.

Formularbezogene Pseudo-Elemente

Die Pseudo-Elemente beziehen sich auf Formularelemente.

::checkmark

Zielt auf das Häkchen ab, das innerhalb des aktuell ausgewählten <option> Elements eines anpassbaren Auswahlelements platziert ist, um einen visuellen Hinweis darauf zu geben, welches ausgewählt ist.

::file-selector-button

Die Schaltfläche eines <input> von type="file".

::picker()

Der Auswahlteil eines Elements, zum Beispiel der Dropdown-Auswahl eines anpassbaren Auswahlelements.

::picker-icon

Das Auswahl-Symbol innerhalb von Formularelementen, denen ein Symbol zugewiesen ist. Im Falle eines anpassbaren Auswahlelements wählt es den Pfeil, der nach unten zeigt, wenn das Auswahlfeld geschlossen ist.

::placeholder

Der Platzhaltertext in einem Eingabefeld.

Alphabetischer Index

Pseudo-Elemente, die durch eine Reihe von CSS-Spezifikationen definiert sind, umfassen Folgendes:

A

B

C

D

F

G

H

M

P

S

T

V

Verschachtelung von Pseudo-Elementen

Sie können einige Pseudo-Element-Selektoren zusammenketten, um gestylte Pseudo-Elemente zu erstellen, die in andere Pseudo-Elemente verschachtelt sind. Die folgenden Kombinationen von verschachtelten Pseudo-Elementen werden unterstützt:

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

Vererbung von Hervorhebungs-Pseudo-Elementen

Hervorhebungs-Pseudo-Elemente, wie ::selection, ::target-text, ::highlight(), ::spelling-error und ::grammar-error, folgen einem konsistenten Vererbungsmodell, das sich von der regulären Elementvererbung unterscheidet.

Wenn Sie Stile auf Hervorhebungs-Pseudo-Elemente anwenden, erben sie von sowohl:

  1. Ihren Elternelementen (gemäß der normalen Vererbung).
  2. Den Hervorhebungs-Pseudo-Elementen ihrer Elternelemente (gemäß der Hervorhebungsvererbung).

Das bedeutet, dass wenn Sie sowohl ein Elternelement als auch ein Kindelement mit einem Hervorhebungs-Pseudo-Element stylen, der hervorgehobene Text des Kindelements Eigenschaften aus beiden Quellen kombiniert.

Hier ist ein konkretes Beispiel.

Zuerst haben wir einige HTML-Inhalte, die zwei verschachtelte <div> Elemente umfassen. Einige der eingeschlossenen Textinhalte befinden sich direkt im übergeordneten <div>, und einige sind im untergeordneten <div> verschachtelt.

html
<div class="parent">
  Parent text
  <div class="child">Child text</div>
</div>

Als nächstes fügen wir etwas CSS hinzu, das die übergeordneten und untergeordneten <div> Elemente separat auswählt und ihnen unterschiedliche color Werte gibt, und das ausgewählte Textstück der übergeordneten und untergeordneten Elemente (::selection) auswählt. Dies gibt jedem <div> eine andere background-color und setzt eine andere Textfarbe color auf der Elternelementauswahl.

css
/* Style for the parent element */
.parent {
  color: blue;
}

/* Style for the parent's selected text */
.parent::selection {
  background-color: yellow;
  color: red;
}

/* Style for the child element */
.child {
  color: green;
}

/* Style for the child's selected text */
.child::selection {
  background-color: orange;
}

Das Beispiel wird folgendermaßen dargestellt:

Versuchen Sie, den Text in beiden Elementen auszuwählen. Beachten Sie, dass:

  1. Wenn Sie den übergeordneten Text auswählen, er den gelben Hintergrund und die rote Textfarbe verwendet, die in .parent::selection definiert sind.
  2. Wenn Sie den untergeordneten Text auswählen, es verwendet:
    • Den orangefarbenen Hintergrund von .child::selection.
    • Die rote Textfarbe, die von dem ::selection Pseudo-Element des übergeordneten Elements geerbt wird.

Dies demonstriert, wie das Hervorhebungs-Pseudo-Element des Kindelements sowohl vom Elternelement als auch vom Hervorhebungs-Pseudo-Element des Elternelements erbt.

CSS Custom Properties (Variablen) in Hervorhebungs-Pseudo-Elementen erben von ihrem ursprünglichen Element (dem Element, auf das sie angewendet werden), nicht durch die Hervorhebungsvererbungskette. Zum Beispiel:

css
:root {
  --selection-color: lightgreen;
}

::selection {
  color: var(--selection-color);
}

.blue {
  --selection-color: blue;
}

Wenn Sie mit dem universellen Selektor mit Hervorhebungs-Pseudo-Elementen arbeiten, verhindert dies die Hervorhebungsvererbung. Zum Beispiel:

css
/* This prevents highlight inheritance */
*::selection {
  color: lightgreen;
}

/* Prefer this to allow inheritance */
:root::selection {
  color: lightgreen;
}

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