Selektoren¶
Selektoren bieten die Möglichkeit ein oder mehrere Elemente auf der Website auszuwählen (selektieren) und diese mittels CSS zu verändern.
CSS-Selektoren sind das Herzstück von Cascading Style Sheets (CSS) und ermöglichen es, gezielt HTML-Elemente auszuwählen und zu gestalten. Mit Selektoren kannst man bestimmen, welche Elemente einer Webseite von einer bestimmten Stilregel betroffen sind – sei es ein einzelnes Element, eine Gruppe von Elementen oder sogar alle Elemente eines bestimmten Typs.
Grundlegende Selektoren¶
Universalselektor (*)¶
Wählt alle Elemente im Dokument aus.
<p>Ein Paragraph</p>
<p>Noch ein Paragraph</p>
* {
color: red;
}
Setzt die Schriftfarbe aller Elemente auf rot.
Ein Paragraph
Noch ein Paragraph
Elementselektor (E)¶
Wählt alle Elemente des Typs E aus.
<h3>Eine Überschrift</h3>
<p>Ein Paragraph</p>
<p>Noch ein Paragraph</p>
p {
color: blue;
}
Alle <p>-Elemente werden blau.
Eine Überschrift
Ein Paragraph
Noch ein Paragraph
Klassenselektor (.className)¶
Wählt alle Elemente mit der Klasse className aus.
<p class="text">Ein Paragraph</p>
<p>Noch ein Paragraph</p>
.text {
background: blue;
}
Alle Elemente mit der Klasse text erhalten einen blauen Hintergrund.
Ein Paragraph
Noch ein Paragraph
ID-Selektor (#main)¶
Wählt das Element mit der ID main aus.
<p id="text">Ein Paragraph</p>
<p>Noch ein Paragraph</p>
#text {
font-size: 30px;
}
Das Element mit der ID text erhält eine Schriftgröße von 20px.
Ein Paragraph
Noch ein Paragraph
Hierarchie- und Beziehungsselektoren¶
Nachfahrenselektor (E F)¶
Wählt alle Elemente F aus, die Nachfahren von E sind.
<div>
<p>p in div</p>
</div>
<p>Nicht im div</p>
div p {
color: red;
}
Alle <p>-Elemente innerhalb eines <div> werden rot.
p in div
Nicht im div
Kindselektor (E > F)¶
Wählt alle Elemente F aus, die direkte Kinder von E sind.
<div>
<span>
Span #1, in div.
<span>Span #2, im span.</span>
</span>
</div>
<span>Span #3, nicht im div.</span>
span {
background-color: aqua;
}
div > span {
background-color: yellow;
}
Alle <span>-Elemente, die direkte Kinder eines <div> sind, bekommen gelben Hintergrund.
Adjacent-Sibling-Selektor (E + F)¶
Wählt das erste Element F aus, das direkt auf E folgt.
<h1>Überschrift</h1>
<p>p nach der h1</p>
<p>p nicht nach der h1</p>
h1 + p {
color: red;
}
Der erste <p>-Absatz, der direkt auf ein <h1> folgt, wird rot.
Überschrift
p nach der h1
p nicht nach der h1
General-Sibling-Selektor (E ~ F)¶
Wählt alle Elemente F aus, die Geschwister von E sind und nach E kommen.
<h2>Überschrift</h2>
<p>p nach h2</p>
<p>p auch nach h2</p>
<div>
<p>p nach div</p>
</div>
h2 ~ p {
color: red;
}
Alle <p>-Elemente, die nach einem <h2> kommen, werden rot.
Überschrift
p nach h2
p auch nach h2
p nach div
Attributselektoren¶
Attributselektor ([a])¶
Wählt alle Elemente aus, die das Attribut a besitzen.
<a href="#">Link</a>
[href] {
color: red;
}
Alle Elemente mit einem href-Attribut werden rot.
Attribut-Gleichheitsselektor ([a=“b“])¶
Wählt alle Elemente aus, bei denen das Attribut a genau den Wert b hat.
<input type="text" name="vorname" id="vorname" />
[type="text"] {
color: red;
}
Alle <input>-Elemente mit type="text" erhalten eine rote Schriftfarbe.
Attribut-Präfixselektor ([a^=“b“])¶
Wählt alle Elemente aus, bei denen das Attribut a mit dem Wert b beginnt.
<a href="https://css.philipperck.de">CSS</a>
<a href="selektoren.html">Selektoren</a>
[href^="https"] {
color: green;
}
Alle Links, die mit https beginnen, werden grün.
Attribut-Suffixselektor ([a$=“b“])¶
Wählt alle Elemente aus, bei denen das Attribut a mit dem Wert b endet.
<a href="download.pdf">PDF download</a>
[href$=".pdf"] {
color: red;
}
Alle Links, die auf .pdf enden, werden rot.
Attribut-Teilstringselektor ([a*=“b“])¶
Wählt alle Elemente aus, bei denen das Attribut a den Wert b irgendwo enthält.
<a href="mein-example.pdf">Beispiel</a>
[href*="example"] {
font-weight: bold;
}
Alle Links, die example im href-Attribut enthalten, werden fett.
Pseudoklassen¶
:hover¶
Wählt ein Element aus, über dem sich der Mauszeiger befindet.
<button>Klicken</button>
button:hover {
color: rebeccapurple;
}
Ein Button bekommt lila Schriftfarbe, wenn die Maus darüber schwebt.
:nth-child(n)¶
Wählt das n-te Kind eines Elternteils aus.
<ul>
<li>Listitem 1</li>
<li>Listitem 2</li>
<li>Listitem 3</li>
</ul>
li:nth-child(2) {
color: red;
}
Das zweite <li>-Element in einer Liste wird rot.
- Listitem 1
- Listitem 2
- Listitem 3
:nth-last-child(n)¶
Wählt das n-te Kind eines Elternteils, gezählt von hinten.
<ul>
<li>Listitem 1</li>
<li>Listitem 2</li>
<li>Listitem 3</li>
</ul
li:nth-last-child(3) {
color: red;
}
Das erste <li>-Element in einer Liste wird rot.
- Listitem 1
- Listitem 2
- Listitem 3
:nth-of-type(n)¶
Wählt das n-te Element eines bestimmten Typs aus.
<h2>Überschrift</h2>
<p>Paragraph</p>
<h3>Überschrift</h3>
<p>Paragraph</p>
p:nth-of-type(2) {
color: red;
}
Der zweite <p>-Absatz wird rot.
Überschrift
Paragraph
Überschrift
Paragraph
:nth-last-of-type(n)¶
Wählt das n-te Element eines bestimmten Typs, gezählt von hinten.
<h2>Überschrift</h2>
<p>Paragraph</p>
<h3>Überschrift</h3>
<p>Paragraph</p>
p:nth-last-of-type(2) {
color: red;
}
Der lerste <p>-Absatz wird rot.
Überschrift
Paragraph
Überschrift
Paragraph
:first-child¶
Wählt das erste Kind eines Elternteils aus.
<div>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<p>Paragraph</p>
div p:first-child {
color: red;
}
Der erste <p>-Absatz in einem <div> wird rot.
Paragraph
Paragraph
Paragraph
:last-child¶
Wählt das letzte Kind eines Elternteils aus.
<div>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<p>Paragraph</p>
div p:last-child {
color: red;
}
Der letzte <p>-Absatz in einem <div> wird rot.
Paragraph
Paragraph
Paragraph
:first-of-type¶
Wählt das erste Element eines bestimmten Typs aus.
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
p:first-of-type {
color: red;
}
Der erste <p>-Absatz wird rot.
Paragraph
Paragraph
Paragraph
:last-of-type¶
Wählt das letzte Element eines bestimmten Typs aus.
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
p:last-of-type {
color: red;
}
Der letzte <p>-Absatz wird rot.
Paragraph
Paragraph
Paragraph
:visited¶
Wählt besuchte Links aus.
<a href="#">Link</a>
a:visited {
color: purple;
}
Besuchte Links werden lila.
:active¶
Wählt ein Element aus, das gerade aktiviert wird (z. B. beim Klicken).
<a href="#">Link</a>
a:active {
color: red;
}
Ein Link wird rot, während er geklickt wird.
:focus¶
Wählt ein Element aus, das den Fokus hat (z. B. ein Eingabefeld).
<input type="text" name="nachname" id="nachname" />
input:focus {
border: 4px solid blue;
}
Ein Eingabefeld erhält einen blauen Rahmen, wenn es fokussiert ist.
:enabled¶
Wählt aktivierte Formularelemente aus (z. B. Eingabefelder).
<input type="text" name="strasse" id="strasse" />
<input type="text" name="strasse2" id="strasse2" disabled />
input:enabled {
background-color: crimson;
}
Aktivierte Eingabefelder erhalten die Hintergrundfarbe crimson.
:disabled¶
Wählt deaktivierte Formularelemente aus.
<input type="text" name="strasse" id="strasse" />
<input type="text" name="strasse2" id="strasse2" disabled />
input:disabled {
background-color: gray;
}
Deaktivierte Eingabefelder erhalten einen grauen Hintergrund.
:checked¶
Wählt ausgewählte Formularelemente aus (z. B. Checkboxen oder Radiobuttons).
<p>Lieblingshelden:</p>
<input type="checkbox" id="ironman" name="helden" value="Ironman" />
<label for="ironman">Ironman</label>
<input type="checkbox" id="hulk" name="helden" value="Hulk" />
<label for="hulk">Hulk</label>
<input type="checkbox" id="thor" name="helden" value="Thor" />
<label for="thor">Thor</label>
input:checked + label {
border: 2px solid green;
}
Labels von ausgewählten Checkboxen erhalten einen grünen Rahmen.
Lieblingshelden: