Pseudoklassen
Eine CSS Pseudoklasse ist ein Schlüsselwort, das einem Selektor hinzugefügt wird, um einen bestimmten Zustand der ausgewählten Elemente zu stylen. Zum Beispiel kann die Pseudoklasse :hover
verwendet werden, um einen Button auszuwählen, wenn der Zeiger eines Nutzers über den Button schwebt, und dieser ausgewählte Button kann dann gestaltet werden.
/* Any button over which the user's pointer is hovering */
button:hover {
color: blue;
}
Eine Pseudoklasse besteht aus einem Doppelpunkt (:
), gefolgt vom Namen der Pseudoklasse (z.B. :hover
). Eine funktionale Pseudoklasse enthält außerdem ein Paar Klammern zur Definition der Argumente (z.B. :dir()
). Das Element, an das eine Pseudoklasse angehängt ist, wird als Ankerelement definiert (z.B. button
im Fall von button:hover
).
Pseudoklassen ermöglichen es Ihnen, einem Element nicht nur in Bezug auf den Inhalt des Dokumentbaums einen Stil zu verleihen, sondern auch in Bezug auf externe Faktoren wie den Verlauf des Browsers (z.B. :visited
), den Status seines Inhalts (wie :checked
bei bestimmten Formularelementen) oder die Position der Maus (wie :hover
, das angibt, ob die Maus über einem Element ist oder nicht).
Hinweis: Im Gegensatz zu Pseudoklassen können Pseudoelemente verwendet werden, um einen spezifischen Teil eines Elements zu gestalten.
Elementare Pseudoklassen
Diese Pseudoklassen beziehen sich auf die Kernidentität von Elementen.
:defined
-
Passt auf jedes Element, das definiert ist.
Pseudoklassen zum Anzeigestatus von Elementen
Diese Pseudoklassen ermöglichen die Auswahl von Elementen basierend auf ihren Anzeigestatus.
:open
-
Passt auf ein Element, das entweder offen oder geschlossen werden kann und derzeit offen ist.
:popover-open
-
Passt auf ein Popover-Element, das sich derzeit im Anzeigestatus befindet.
:modal
-
Passt auf ein Element, das sich in einem Zustand befindet, in dem es jede Interaktion mit Elementen außerhalb davon ausschließt, bis die Interaktion beendet ist.
:fullscreen
-
Passt auf ein Element, das sich derzeit im Vollbildmodus befindet.
:picture-in-picture
-
Passt auf ein Element, das sich derzeit im Bild-im-Bild-Modus befindet.
Eingabe-Pseudoklassen
Diese Pseudoklassen beziehen sich auf Formularelemente und ermöglichen die Auswahl von Elementen basierend auf HTML-Attributen und dem Zustand, in dem sich das Feld vor und nach der Interaktion befindet.
:enabled
-
Stellt ein User-Interface-Element dar, das sich im aktivierten Zustand befindet.
:disabled
-
Stellt ein User-Interface-Element dar, das sich im deaktivierten Zustand befindet.
:read-only
-
Stellt jedes Element dar, das vom Benutzer nicht verändert werden kann.
:read-write
-
Stellt jedes Element dar, das vom Benutzer bearbeitet werden kann.
:placeholder-shown
-
Passt auf ein Eingabeelement, das Platzhaltertext anzeigt. Zum Beispiel wird es auf das
placeholder
-Attribut in den<input>
- und<textarea>
-Elementen passen. :autofill
-
Passt, wenn ein
<input>
vom Browser automatisch ausgefüllt wurde. :default
-
Passt auf ein oder mehrere UI-Elemente, die der Standard unter einer Gruppe von Elementen sind.
:checked
-
Passt, wenn Elemente wie Kontrollkästchen und Optionsfelder eingeschaltet sind.
:indeterminate
-
Passt auf UI-Elemente, wenn sie sich in einem unbestimmten Zustand befinden.
:blank
-
Passt auf ein Benutzereingabeelement, das leer ist, eine leere Zeichenfolge oder eine andere Null-Eingabe enthält.
:valid
-
Passt auf ein Element mit gültigem Inhalt. Zum Beispiel ein Eingabeelement mit dem Typ 'email', das eine gültig geformte E-Mail-Adresse enthält oder ein leerer Wert, wenn die Eingabe nicht erforderlich ist.
:invalid
-
Passt auf ein Element mit ungültigem Inhalt. Zum Beispiel ein Eingabeelement mit dem Typ 'email', bei dem ein Name eingegeben wurde.
:in-range
-
Gilt für Elemente mit Bereichsbeschränkungen. Zum Beispiel ein Schieberegler, wenn der ausgewählte Wert im erlaubten Bereich liegt.
:out-of-range
-
Gilt für Elemente mit Bereichsbeschränkungen. Zum Beispiel ein Schieberegler, wenn der ausgewählte Wert außerhalb des erlaubten Bereichs liegt.
:required
-
Passt, wenn ein Formularelement erforderlich ist.
:optional
-
Passt, wenn ein Formularelement optional ist.
:user-valid
-
Stellt ein Element mit korrekter Eingabe dar, jedoch nur, wenn der Benutzer damit interagiert hat.
:user-invalid
-
Stellt ein Element mit falscher Eingabe dar, jedoch nur, wenn der Benutzer damit interagiert hat.
Sprachliche Pseudoklassen
Diese Pseudoklassen spiegeln die Sprache des Dokuments wider und ermöglichen die Auswahl von Elementen basierend auf der Sprache oder der Schreibrichtung.
Standort-Pseudoklassen
Diese Pseudoklassen beziehen sich auf Links und auf gezielte Elemente innerhalb des aktuellen Dokuments.
:any-link
-
Passt auf ein Element, wenn das Element entweder auf
:link
oder:visited
passen würde. :link
-
Passt auf Links, die noch nicht besucht wurden.
:visited
-
Passt auf Links, die besucht wurden.
:local-link
-
Passt auf Links, deren absolute URL mit der Ziel-URL identisch ist. Zum Beispiel Ankerlinks zur gleichen Seite.
:target
-
Passt auf das Element, das das Ziel der URL des Dokuments ist.
:target-within
-
Passt auf Elemente, die das Ziel der URL des Dokuments sind, aber auch auf Elemente, die einen Nachkommen haben, der das Ziel der URL des Dokuments ist.
:scope
-
Stellt Elemente dar, die einen Bezugspunkt für Selektoren darstellen, gegen die abgeglichen werden soll.
Ressourcenstatus-Pseudoklassen
Diese Pseudoklassen gelten für Medien, die in einem Zustand sein können, in dem sie als spielend beschrieben werden würden, wie zum Beispiel ein Video.
:playing
-
Stellt ein abspielbares Element dar, das abgespielt wird.
:paused
-
Stellt ein abspielbares Element dar, das pausiert ist.
:seeking
-
Stellt ein abspielbares Element dar, das gerade nach einer Wiedergabeposition in der Medienressource sucht.
:buffering
-
Stellt ein abspielbares Element dar, das abgespielt wird, aber vorübergehend gestoppt ist, weil es die Medienressource herunterlädt.
:stalled
-
Stellt ein abspielbares Element dar, das abgespielt wird, aber gestoppt ist, weil es die Medienressource nicht herunterladen kann.
:muted
-
Stellt ein klangerzeugendes Element dar, das stummgeschaltet ist.
:volume-locked
-
Stellt ein klangerzeugendes Element dar, dessen Lautstärkepegel durch den Browser gesperrt ist.
Zeitdimensionale Pseudoklassen
Diese Pseudoklassen gelten, wenn etwas betrachtet wird, das ein Timing hat, wie z.B. eine WebVTT Untertitelspur.
Baumstrukturale Pseudoklassen
Diese Pseudoklassen beziehen sich auf die Position eines Elements innerhalb des Dokumentbaums.
:root
-
Stellt ein Element dar, das die Wurzel des Dokuments ist. In HTML ist dies normalerweise das
<html>
-Element. :empty
-
Stellt ein Element dar, das keine Kinder hat, außer Leerzeichenzeichen.
:nth-child()
-
Verwendet die
An+B
-Notation, um Elemente aus einer Liste von Geschwisterelementen auszuwählen. :nth-last-child()
-
Verwendet die
An+B
-Notation, um Elemente aus einer Liste von Geschwisterelementen auszuwählen, rückwärts vom Ende der Liste gezählt. :first-child
-
Passt auf ein Element, das das erste seiner Geschwister ist.
:last-child
-
Passt auf ein Element, das das letzte seiner Geschwister ist.
:only-child
-
Passt auf ein Element, das keine Geschwister hat. Zum Beispiel ein Listenelement ohne andere Listenelemente in dieser Liste.
:nth-of-type()
-
Verwendet die
An+B
-Notation, um Elemente aus einer Liste von Geschwisterelementen auszuwählen, die einem bestimmten Typ aus einer Liste von Geschwisterelementen entsprechen. :nth-last-of-type()
-
Verwendet die
An+B
-Notation, um Elemente aus einer Liste von Geschwisterelementen auszuwählen, die einem bestimmten Typ aus einer Liste von Geschwisterelementen entsprechen, rückwärts vom Ende der Liste gezählt. :first-of-type
-
Passt auf ein Element, das das erste seiner Geschwister ist und auch einem bestimmten Typselektor entspricht.
:last-of-type
-
Passt auf ein Element, das das letzte seiner Geschwister ist und auch einem bestimmten Typselektor entspricht.
:only-of-type
-
Passt auf ein Element, das keine Geschwister vom gewählten Typselektor hat.
Schattenstrukturale Pseudoklassen
Diese Pseudoklassen beziehen sich auf das Shadow DOM.
:host
-
Passt auf den Wirt des Schattenbaums.
:host()
-
Passt auf ein Element, das zu
:host
passt und auf einen der Selektoren in der bereitgestellten Liste passt. :host-context()
-
Wählt Elemente außerhalb des Schattenbaums im Kontext des Schattenwirts aus.
:has-slotted
-
Passt auf Slot-Elemente, denen Inhalte zugewiesen wurden.
Benutzeraktions-Pseudoklassen
Diese Pseudoklassen erfordern eine Interaktion des Benutzers, damit sie angewendet werden, wie zum Beispiel das Halten eines Mauspointers über einem Element.
:hover
-
Passt, wenn ein Benutzer ein Element mit einem Zeigegerät auswählt, beispielsweise durch Halten des Mauszeigers über dem Element.
:active
-
Passt, wenn ein Element vom Benutzer aktiviert wird. Zum Beispiel, wenn das Element angeklickt wird.
:focus
-
Passt, wenn ein Element den Fokus hat.
:focus-visible
-
Passt, wenn ein Element den Fokus hat und der Benutzeragent feststellt, dass das Element sichtbar fokussiert sein sollte.
:focus-within
-
Passt auf ein Element, auf das
:focus
zutrifft, zusätzlich zu jedem Element, das einen Nachkommen hat, auf den:focus
zutrifft. :target-current
-
Passt auf das
::scroll-marker
-Pseudoelement einerscroll-marker-group
, das derzeit gescrollt wird, mit anderen Worten, den aktiven Scroll-Marker.
Funktionale Pseudoklassen
Diese Pseudoklassen akzeptieren eine Selektorliste oder eine verzeihende Selektorliste als Parameter.
:is()
-
Die „passt-auf-jedes“-Pseudoklasse passt auf jedes Element, das auf einen der bereitgestellten Selektoren passt. Die Liste ist verzeihend.
:not()
-
Die Negation-, oder „passt-auf-keinen“-, Pseudoklasse stellt jedes Element dar, das nicht durch ihren Parameter dargestellt wird.
:where()
-
Die Spezifitätsanpassungs-Pseudoklasse passt auf jedes Element, das auf einen der bereitgestellten Selektoren passt, ohne Gewicht in der Spezifität hinzuzufügen. Die Liste ist verzeihend.
:has()
-
Die relationale Pseudoklasse stellt ein Element dar, wenn einer der relativen Selektoren übereinstimmt, wenn gegen das angehängte Element verankert.
Benutzerdefinierte Zustands-Pseudoklassen
Diese Pseudoklassen gelten für benutzerdefinierte Elemente.
:state()
-
Passt auf benutzerdefinierte Elemente, die den angegebenen benutzerdefinierten Zustand haben.
Seiten-Pseudoklassen
Diese Pseudoklassen beziehen sich auf Seiten in einem gedruckten Dokument und werden mit der @page
-At-Regel verwendet.
Syntax
selector:pseudo-class {
property: value;
}
Wie reguläre Klassen können Sie so viele Pseudoklassen wie gewünscht in einem Selektor verketten.
Alphabetisches Verzeichnis
Pseudoklassen, die durch eine Gruppe von CSS-Spezifikationen definiert sind, umfassen die folgenden:
A
B
:blank
(Eingabe) Experimentell:blank
(Seite):buffering
C
D
E
F
H
I
L
:lang()
:last-child
:last-of-type
:left
:link
:local-link
Experimentell
M
N
O
P
R
S
T
:target
:target-current
:target-within
Experimentell
U
V
W
Spezifikationen
Specification |
---|
HTML # pseudo-classes |
Selectors Level 4 |
CSS Scoping Module Level 1 |
CSS Paged Media Module Level 3 |