Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Pseudo-Elemente
Ein CSSPseudo-Element ist ein Schlüsselwort, das einem Selektor hinzugefügt wird, um einen bestimmten Teil der ausgewählten Elemente zu stylen.
Hinweis:Diese Seite ist ein Index aller Pseudo-Elemente in CSS. Die SeiteCSS-Pseudo-Elemente stellt das Modul vor, das einige, aber nicht alle dieser Pseudo-Elemente definiert.
In diesem Artikel
Syntax
selector::pseudo-element { property: value;}Zum Beispiel kann::first-line verwendet werden, um die Schriftart der ersten Zeile eines Absatzes zu ändern.
/* The first line of every <p> element. */p::first-line { color: blue; text-transform: uppercase;}Doppelpunktpaare (::) werden für Pseudo-Elemente verwendet. Dies unterscheidet Pseudo-Elemente vonPseudo-Klassen, die in ihrer Notation einen einfachen Doppelpunkt (:) verwenden. Beachten Sie, dass Browser die Syntax mit einem einfachen Doppelpunkt 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, von dem ein Pseudo-Element Teil ist, wird als seinausgehendes Element bezeichnet. Ein Pseudo-Element muss nach allen anderen Komponenten imkomplexen oderzusammengesetzten Selektor erscheinen. Das letzte Element im Selektor ist das ausgehende Element des Pseudo-Elements. Zum Beispiel können Sie die erste Zeile eines Absatzes mitp::first-line auswählen, jedoch nicht die Kinder der ersten Zeile. Daher istp::first-line > * ungültig.
Ein Pseudo-Element kann basierend auf dem aktuellen Zustand des ausgehenden Elements ausgewählt werden. Zum Beispiel wähltp:hover::first-line die erste Zeile (Pseudo-Element) eines Absatzes aus, wenn der Absatz selbst ein Hovering-Effekt zeigt (Pseudo-Klasse).
Hinweis:Wenn eineSelector-Liste einen ungültigen Selektor enthält, wird der gesamte Stilblock ignoriert.
Typografische Pseudo-Elemente
::first-lineDie erste Zeilen-Box des ausgehenden Elements.
::first-letterDer erste Buchstabe, die erste Zahl oder das erste Symbolzeichen in der ersten Zeile seines ausgehenden Elements.
::cueDieWebVTT Hinweise innerhalb eines ausgewählten Elements.Dies kann verwendet werden, umUntertitel und andere Hinweise zu stylen in Medien mit VTT-Tracks.DasCSS-Pseudo-Elemente Modul definiert auch die
::postfixund::prefixSub-Pseudo-Elemente. Diese werden von keinem Browser unterstützt.
Highlight-Pseudo-Elemente
Wählt Dokumentabschnitte basierend auf Inhalt und Dokumentstatus aus und ermöglicht es, diese Bereiche unterschiedlich zu stylen, um den Status dem Benutzer anzuzeigen.
::grammar-errorEin Textteil, den der Browser für grammatikalisch falsch hält.
::highlight()Die Elemente imHighlight-Register. Es wird verwendet, um benutzerdefinierte Hervorhebungen zu erstellen.
::search-textSuchergebnisse, die vom "Find" oder "Find in page"-Textsuch-Feature des Benutzeragents identifiziert werden.
::selectionDer Teil eines Dokuments, der ausgewählt wurde.
::spelling-errorEin Textteil, den der Browser für falsch geschrieben hält.
::target-textDas Zielelement des Dokuments. Das Zielelement wird über denFragment-Identifikator der URL identifiziert.
Baumkonforme Pseudo-Elemente
Diese Pseudo-Elemente verhalten sich wie normale Elemente und fügen sich nahtlos in das Boxmodell ein. Sie wirken wie ein Kindelement, das direkt innerhalb der Hierarchie des ausgehenden Elements gestylt werden kann.
::beforeErstellt ein Pseudo-Element, das das erste Kind des ausgewählten Elements ist.
::afterErstellt ein Pseudo-Element, das das letzte Kind des ausgewählten Elements ist.
::columnJedes Spaltenfragment einesmehrspaltigen Layouts.
::markerDie automatisch generierte Marker-Box eines Listenelements.
::backdropDer Hintergrund des ausgehenden Elements, der in derTop-Schicht gerendert wird.
::scroll-button()Erstellt einen Button, der das Scrollen desScrollcontainers, auf den es angewendet wird, steuern kann.
::scroll-markerErstellt ein Pseudo-Element, das ein Scroll-Marker ist — ein Scrollziel-Button für sein ausgehendes Element, das in einer Scroll-Marker-Gruppe verschachtelt ist.
::scroll-marker-groupErzeugt einen Container vor oder nach einem Scroll-Container, um die auf dem Element oder seinen Nachkommen generierten
::scroll-markerPseudo-Elemente aufzunehmen.
Auf Elementen basierende Pseudo-Elemente
Diese Pseudo-Elemente sind reale Elemente, die ansonsten nicht selektierbar sind.
::details-contentDer erweiterbare/kollabierbare Inhalt eines
<details>Elements.::part()Jedes Element innerhalb einesSchattenbaums, das ein entsprechendes
partAttribut hat.::slotted()Jedes Element, das in einen Slot innerhalb eines HTML-Templates platziert wurde.
Formularbezogene Pseudo-Elemente
Die Pseudo-Elemente beziehen sich auf Formularelemente.
::checkmarkVisiert das Häkchen innerhalb des aktuell ausgewählten
<option>Elements einesanpassbaren Auswahl-Elements, um eine visuelle Anzeige, welches ausgewählt wurde, zu geben.::file-selector-buttonDer Button eines
<input>vomtype="file".::picker()Der Picker-Teil eines Elements, zum Beispiel der Drop-down-Picker einesanpassbaren Auswahl-Elements.
::picker-iconDas Picker-Icon innerhalb von Formularsteuerelementen, die ein zugeordnetes Symbol haben. Im Fall einesanpassbaren Auswahl-Elements wählt es den Pfeil aus, der nach unten zeigt, wenn das Auswahlfeld geschlossen ist.
::placeholderDer Platzhaltertext in einem Eingabefeld.
Alphabetischer Index
Durch eine Reihe von CSS-Spezifikationen definierte Pseudo-Elemente umfassen die folgenden:
A
B
C
D
F
G
H
M
P
S
T
V
Nicht-standardisierte Pseudo-Elemente
Nicht-standardisierte, vendor-spezifische Pseudo-Elemente umfassen:
-moz- Präfix
::-moz-color-swatch::-moz-focus-inner::-moz-list-bullet::-moz-list-number::-moz-meter-bar::-moz-progress-bar::-moz-range-progress::-moz-range-thumb::-moz-range-track
-webkit- Präfix
::-webkit-inner-spin-button::-webkit-meter-bar::-webkit-meter-even-less-good-value::-webkit-meter-inner-element::-webkit-meter-optimum-value::-webkit-meter-suboptimum-value::-webkit-progress-bar::-webkit-progress-inner-element::-webkit-progress-value::-webkit-scrollbar::-webkit-search-cancel-button::-webkit-search-results-button::-webkit-slider-runnable-track::-webkit-slider-thumb
Verschachtelung von Pseudo-Elementen
Sie können einige Pseudo-Element-Selektoren miteinander verketten, um verschachtelte Pseudo-Elemente innerhalb anderer Pseudo-Elemente zu stylen. Die folgenden verschachtelten Pseudo-Element-Kombinationen werden unterstützt:
::after::after::marker: Wählt das::markerPseudo-Element eines::afterPseudo-Elements aus, wenn::afterals Listenelement mitdisplay: list-itemgestylt ist.
::before::before::marker: Wählt das::markerPseudo-Element eines::beforePseudo-Elements aus, wenn::beforeals Listenelement mitdisplay: list-itemgestylt ist.
Schauen Sie sich die einzelnen Referenzseiten zu den Pseudo-Elementen für Beispiele und Informationen zur Browser-Kompatibilität an.
Highlight-Pseudo-Elemente Vererbung
Highlight-Pseudo-Elemente wie::selection,::target-text,::highlight(),::spelling-error und::grammar-error folgen einem konsistenten Vererbungsmodell, das sich von derregulären Elementvererbung unterscheidet.
Wenn Sie Styles auf Highlight-Pseudo-Elemente anwenden, erben sie sowohl von:
- Ihren Elternelementen (gemäß normaler Vererbung).
- Den Highlight-Pseudo-Elementen ihrer Elternelemente (gemäß Highlight-Vererbung).
Das bedeutet, dass, wenn Sie sowohl das Highlight-Pseudo-Element eines Elternelements als auch das eines Kindelements stylen, der hervorgehobene Text des Kindes Eigenschaften aus beiden Quellen kombiniert.
Hier ist ein konkretes Beispiel.
Zuerst haben wir etwas HTML, das zwei verschachtelte<div> Elemente enthält. Ein Teil des enthaltenen Textes befindet sich direkt im übergeordneten<div>, und ein Teil ist im untergeordneten<div> verschachtelt.
<div> Parent text <div>Child text</div></div>Als Nächstes fügen wir etwas CSS hinzu, das die Elternelemente und Kind-<div>-Elemente separat auswählt und ihnen unterschiedlichecolor Werte verleiht, sowie den Text des Elternteils und Kindes auswählt (::selection). Dies gibt jedem<div> eine anderebackground-color und setzt eine andere Textfarbe für die Auswahl des Elternteils fest.
/* 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 wie folgt gerendert:
Versuchen Sie, den Text in beiden Elementen auszuwählen. Beachten Sie, dass:
- Wenn Sie den Text des Elternteils auswählen, verwendet er den gelben Hintergrund und die rote Textfarbe, die in
.parent::selectiondefiniert sind. - Wenn Sie den Text des Kindes auswählen, verwendet er:
- Den orangefarbenen Hintergrund aus
.child::selection. - Die rote Textfarbe, die vom
::selectionPseudo-Element des Elternteils geerbt wird.
- Den orangefarbenen Hintergrund aus
Dies zeigt, wie das Highlight-Pseudo-Element des Kindes sowohl von seinem übergeordneten Element als auch vom Highlight-Pseudo-Element des Elternteils erbt.
CSS-Benutzerdefinierte Eigenschaften (Variablen) in Highlight-Pseudo-Elementen erben von ihrem Ursprünglichen Element (dem Element, auf das sie angewendet werden), nicht durch die Highlight-Vererbungskette. Zum Beispiel:
:root { --selection-color: lightgreen;}::selection { color: var(--selection-color);}.blue { --selection-color: blue;}Die Verwendung des universellen Selektors mit Highlight-Pseudo-Elementen verhindert die Highlighter-Vererbung. Zum Beispiel:
/* 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> |
| Unknown specification> |
| WebVTT: The Web Video Text Tracks Format> |
Siehe auch
- CSS-Pseudo-Elemente Modul
- Pseudo-Klassen
- CSS-Selektoren Modul
- Lernen: Pseudo-Klassen und Pseudo-Elemente
- Änderungen bei der Vererbung für CSS-Auswahlstyling - Detaillierte Erklärung der Änderungen im Highlight-Pseudo-Elemente-Vererbungsmodell in Chrome 134