CSS – Selektoren

1. Was sind CSS-Selektoren?

CSS-Selektoren bestimmen, welche HTML-Elemente durch CSS gestaltet werden.

Ein Selektor steht am Anfang einer CSS-Regel. Danach folgen die Eigenschaften und Werte.

Beispiel

p {
    color: blue;
    font-size: 18px;
}

In diesem Beispiel ist p der Selektor. Alle passenden Absätze erhalten die definierte Textfarbe und Schriftgröße.

Merken: Ein CSS-Selektor wählt HTML-Elemente aus. Die CSS-Deklarationen bestimmen deren Darstellung.

2. Typselektor (Elementselektor)

Ein Typselektor wählt alle HTML-Elemente eines bestimmten Typs aus.

CSS-Code

p {
    color: blue;
}

Ergebnis

Erster Absatz

Zweiter Absatz

Dritter Absatz

Alle drei Absätze werden blau dargestellt.


3. Klassenselektor (class)

Klassen werden mit einem Punkt vor dem Klassennamen angesprochen.

HTML-Code

<p class="wichtig">
    Wichtiger Text
</p>

CSS-Code

.wichtig {
    color: red;
    font-weight: bold;
}

Ergebnis

Normaler Text

Wichtiger Text

Weiterer normaler Text

Merken: Eine Klasse kann für mehrere HTML-Elemente verwendet werden.

4. ID-Selektor

Ein ID-Selektor wird mit dem Zeichen # angesprochen.

HTML-Code

<p id="besonderer-text">
    Besonderer Absatz
</p>

CSS-Code

#besonderer-text {
    background: lightyellow;
    color: brown;
}

Ergebnis

Dieser Absatz besitzt eine eindeutige ID.

Wichtig: Ein ID-Wert soll innerhalb eines HTML-Dokuments nur einmal vorkommen.

5. Unterschied zwischen class und id

Merkmal class id
CSS-Zeichen . #
Mehrfach verwendbar Ja Nein, ID-Wert eindeutig
HTML-Beispiel class="box" id="header"
CSS-Beispiel .box #header

6. Universalselektor (*)

Der Universalselektor wählt alle Elemente aus, die in seinem Geltungsbereich liegen.

CSS-Code

* {
    box-sizing: border-box;
}

Diese Regel wird häufig verwendet, um das Box-Modell einheitlich einzustellen.

Ergebnis eines begrenzten Selektors

Absatz

Fetter Text
Container

7. Gruppenselektor

Mehrere Selektoren können mit Kommas kombiniert werden.

CSS-Code

h1, h2, p {
    color: green;
}

Ergebnis

Überschrift

Erster Absatz

Zweiter Absatz


8. Nachfahrenselektor (Leerzeichen)

Ein Nachfahrenselektor wählt Elemente aus, die sich innerhalb eines anderen Elements befinden.

CSS-Code

article p {
    color: purple;
}

Ergebnis

Absatz innerhalb des Artikels

Absatz außerhalb des Artikels

Nur der Absatz innerhalb von article wird lila dargestellt.


9. Kindselektor (>)

Der Kindselektor wählt nur direkte Kindelemente aus.

CSS-Code

.container > p {
    color: red;
}

Ergebnis

Direktes Kindelement

Verschachtelter Absatz

Weiteres direktes Kindelement

Unterschied: Ein Leerzeichen wählt beliebig tief verschachtelte Nachfahren aus. Das Zeichen > wählt nur direkte Kinder.

10. Benachbarter Geschwisterselektor (+)

Mit dem Pluszeichen wird ein Element ausgewählt, das direkt nach einem anderen Element folgt.

CSS-Code

h4 + p {
    background: lightblue;
}

Ergebnis

Überschrift

Direkt folgender Absatz

Zweiter Absatz


11. Allgemeiner Geschwisterselektor (~)

Mit der Tilde werden passende nachfolgende Geschwisterelemente ausgewählt.

CSS-Code

h4 ~ p {
    color: green;
}

Ergebnis

Überschrift

Erster Absatz

Anderes Element

Zweiter Absatz


12. Attributselektoren

Attributselektoren wählen Elemente anhand ihrer HTML-Attribute aus.

CSS-Code

input[type="email"] {
    border: 2px solid blue;
}

Ergebnis

Nur das Eingabefeld mit type="email" erhält einen blauen Rahmen.


13. Pseudoklassen (:hover)

Pseudoklassen beschreiben besondere Zustände oder Positionen eines Elements.

CSS-Code

a:hover {
    background-color: green;
}

Ergebnis

Maus über mich bewegen

Häufige Pseudoklassen

Pseudoklasse Bedeutung
:hover Maus befindet sich über dem Element
:focus Element besitzt den Fokus
:focus-visible Fokus sollte sichtbar hervorgehoben werden
:first-child Element ist das erste Kind seines Elternteils
:last-child Element ist das letzte Kind seines Elternteils
:nth-child() Auswahl anhand der Position
:checked Aktiviertes Kontrollkästchen oder Optionsfeld
:not() Schließt passende Elemente aus

14. :first-child

Die Pseudoklasse :first-child wählt ein Element aus, wenn es das erste Kind seines Elternteils ist.

CSS-Code

p:first-child {
    background: lightblue;
}

Ergebnis

Erster Absatz

Zweiter Absatz

Dritter Absatz


15. :nth-child()

Mit :nth-child() können Elemente anhand ihrer Position ausgewählt werden.

CSS-Code

li:nth-child(even) {
    background: lightblue;
}

Ergebnis

  1. Erstes Element
  2. Zweites Element
  3. Drittes Element
  4. Viertes Element
  5. Fünftes Element
  6. Sechstes Element

even bedeutet gerade Positionen. odd bedeutet ungerade Positionen.


16. Pseudoelemente (::before und ::after)

Pseudoelemente ermöglichen die Gestaltung bestimmter Teile eines Elements.

CSS-Code

.hinweis::before {
    content: "★ ";
    color: gold;
}

.erfolg::after {
    content: " ✓";
    color: green;
}

Ergebnis

Wichtiger Hinweis

Aufgabe abgeschlossen

Wichtig: Inhalte, die für das Verständnis notwendig sind, sollten direkt im HTML stehen. ::before und ::after eignen sich besonders für dekorative Ergänzungen.

17. ::first-letter

Mit ::first-letter kann der erste Buchstabe eines Textblocks gestaltet werden.

CSS-Code

p::first-letter {
    font-size: 35px;
    color: blue;
}

Ergebnis

CSS bietet viele Möglichkeiten, Texte individuell zu gestalten.


18. CSS-Spezifität

Wenn mehrere CSS-Regeln für dasselbe Element gelten, hilft die Spezifität dabei, zu entscheiden, welche Deklaration Vorrang erhält.

Vereinfachte Übersicht

Selektor Beispiel Spezifität
Typselektor p 0-0-1
Klassenselektor .wichtig 0-1-0
ID-Selektor #text 1-0-0

CSS-Code

p {
    color: blue;
}

.highlight {
    color: green;
}

#priority-text {
    color: red;
}

Ergebnis

Welche Farbe hat dieser Text?

Der Text ist rot, weil der ID-Selektor eine höhere Spezifität als der Klassen- und Typselektor besitzt.

Merken: Auch Herkunft, Wichtigkeit, CSS-Ebenen und Reihenfolge beeinflussen die Kaskade. Spezifität ist nur ein Teil dieser Entscheidung.

19. Interaktiver Selektor-Test

Wählen Sie einen CSS-Selektor aus. Die passenden Elemente werden grün hervorgehoben.

Karte 1
Karte 2
Karte 3
Karte 4

Wählen Sie einen Selektor.

Praxis: Die Methode querySelectorAll() kann in JavaScript dieselbe CSS-Selektorsyntax verwenden, um passende Elemente zu finden.

20. Häufige Fehler

Fehler Richtig
class ohne Punkt .klasse
id ohne # #element
Verwechslung von Leerzeichen und > Nachfahren und direkte Kinder unterscheiden
Gleiche ID mehrfach vergeben Eindeutige ID-Werte verwenden
Zu komplizierte Selektoren Möglichst verständliche Klassen verwenden

21. Praktische Übungen

Aufgabe 1

Schreiben Sie einen Selektor für alle HTML-Absätze.

Lösung anzeigen
p {
    color: blue;
}

Aufgabe 2

Wählen Sie alle Elemente mit der Klasse "wichtig" aus.

Lösung anzeigen
.wichtig {
    font-weight: bold;
}

Aufgabe 3

Wählen Sie das Element mit der ID "header" aus.

Lösung anzeigen
#header {
    background: blue;
}

Aufgabe 4

Schreiben Sie einen Gruppenselektor für h1, h2 und h3.

Lösung anzeigen
h1, h2, h3 {
    color: navy;
}

Aufgabe 5

Wählen Sie alle Absätze innerhalb eines article-Elements aus.

Lösung anzeigen
article p {
    color: green;
}

Aufgabe 6

Wählen Sie nur direkte p-Kinder eines div-Elements aus.

Lösung anzeigen
div > p {
    color: red;
}

Aufgabe 7

Ändern Sie die Hintergrundfarbe eines Buttons beim Hover.

Lösung anzeigen
button:hover {
    background-color: green;
}

Aufgabe 8

Wählen Sie jedes zweite li-Element aus, beginnend mit dem zweiten.

Lösung anzeigen
li:nth-child(even) {
    background: lightgray;
}

Aufgabe 9

Wählen Sie nur Eingabefelder mit type="password" aus.

Lösung anzeigen
input[type="password"] {
    border: 2px solid red;
}

Aufgabe 10

Welcher Selektor hat die höhere Spezifität: p, .text oder #text?

Lösung anzeigen

Der ID-Selektor #text besitzt die höchste Spezifität.


22. Zusammenfassung

CSS-Selektoren bestimmen, welche HTML-Elemente gestaltet werden.

Die wichtigsten Grundselektoren sind Typselektoren, Klassenselektoren und ID-Selektoren.

Kombinatoren ermöglichen die Auswahl anhand der HTML-Struktur. Pseudoklassen und Pseudoelemente erweitern die Gestaltungsmöglichkeiten.

Die CSS-Spezifität spielt eine wichtige Rolle, wenn mehrere Regeln auf dasselbe Element angewendet werden.