Karte: Pseudo-Klassen

Pseudo-Klassen

Die geheimen Tricks der CSS-Zauberer

Willkommen im Reich der Pseudo-Klassen, die unsichtbaren Wächter deiner Elemente. Sie ermöglichen dir, magisch zwischen den Zeilen zu lesen. Stell dir vor, du könntest deinen HTML-Elementen befehlen, sich nur in bestimmten Situationen anders zu verhalten, als ob du ihnen heimlich zuflüsterst: „Du, ja, du! Nur, wenn du das dritte Kind bist, machst du etwas Besonderes!“

Mit Pseudo-Klassen beherrschst du diesen geheimen Trick der CSS-Magie. Sie wirken wie unsichtbare Zaubersprüche, die deine Webseite zum Leben erwecken, ohne dass du einen Finger rühren musst. Also schnapp dir deinen Zauberstab und lass uns in die Welt der Pseudo-Klassen eintauchen!

Pseudo-Klassen

Die geheime Macht der Selektoren

Token: nth-child

:nth-child

Der Favorit aus der Kinderschar

Mit :nth-child kannst du jedes Element ansprechen, das sich an einer bestimmten Position in einer Gruppe von Geschwistern befindet. Stell dir eine Reihe von Hasen vor, die auf einer Lichtung sitzen, und du möchtest, dass nur der dritte aufsteht und hüpft. Mit :nth-child(3) funktioniert das, als hättest du den Zauberstab geschwungen!

.bunny:nth-child(3) {
    color: brown;
}

Das .bunny-Element, das an dritter Position steht, wird in der Farbe Braun dargestellt.

Token: nth-child odd/even

:nth-child(odd) / (even)

Gerade und ungerade Zahlen

Mit odd und even wird das Zählen magisch. Du kannst jedem Hasen auf einer geraden Position wie 2, 4 oder 6 einen Zauber schenken oder ungerade wie 1, 3 und 5 hervorheben. So werden selbst große Reihen spielend leicht organisiert, als würde jeder Hase genau wissen, wann er an der Reihe ist!

.bunny:nth-child(odd) {
    color: black;
}

Alle ungeraden .bunny-Elemente werden schwarz eingefärbt.

Token: first-child

:first-child

Das älteste Kind bekommt die Krone

Das :first-child ist der Favorit, das älteste Kind in der Familie. Es bekommt oft die Sonderbehandlung. Diese Pseudo-Klasse wendet deinen Zauber nur auf das erste Element in einer Gruppe an. Die anderen Geschwister? Die schauen nur zu.

.bunny:first-child {
    color: gold;
}

Das erste .bunny-Element wird goldfarben hervorgehoben.

Token: last-child

:last-child

Das jüngste Kind, das alles bekommt

Das :last-child ist das jüngste Kind und wird oft als das besondere behandelt. Es ist immer das letzte Element seiner Eltern und verdient deshalb einen eigenen Zauber. Egal wie viele Kinder es gibt, :last-child steht als Nesthäkchen immer am Ende und bekommt seine eigene magische Behandlung.

.bunny:last-child {
    color: white;
}

Das letzte .bunny-Element erhält eine weiße Schriftfarbe.

Token: nth-of-type

:nth-of-type

Gleich und gleich gesellt sich gerne

Während :nth-child nach allen Kindern eines Elternteils zählt, achtet :nth-of-type nur auf Geschwister desselben Typs. Es ist, als würdest du nur nach den Hunden in einem Haus voller Haustiere suchen, egal wie viele Katzen und Hamster dabei sind.

.bunny:nth-of-type(2) {
    color: white;
}

Das zweite .bunny-Element mit demselben Typ (z. B. <div>, <p>, usw. ) erhält eine weiße Schriftfarbe.

Token: :not

:not

Der Ausschlusszauber

Manchmal willst du alles auf der Seite verzaubern außer einer Sache. Hier kommt :not ins Spiel. Mit diesem Zauber kannst du sagen: „Mach alles, aber lass diesen einen Gegenstand in Ruhe!“ So bleibst du flexibel, ohne die anderen zu vernachlässigen.

.bunny:not(.baby) {
    color: pink;
}

Alle .bunny-Elemente, die nicht die Klasse .baby haben, werden pink eingefärbt.

CSS
/* Pseudoklassen-Einstellungen */
.box:nth-child(odd) {
    background: #e74c3c;
}

.box:nth-child(even) {
    background: #3498db;
}

.box:first-child {
    border: 2px solid #2ecc71;
    box-shadow: 0 0 15px #2ecc71;
    transform: scale(1.1);
}

.box:last-child {
    border: 2px solid #f1c40f;
    box-shadow: 0 0 15px #f1c40f;
    transform: scale(1.1);
}

.box:nth-of-type(3) {
    background: #9b59b6;
}

.box:not(:nth-child(1)) {
    opacity: 0.9;
}

/* Hover-Effekte */
.box:hover {
    transform: scale(1.1);
    background: rgba(255, 255, 255, 0.3);
    color: #222;
}
Token: :is

:is

Der mächtige, aber elegante Begleiter

Manchmal möchtest du mehrere Dinge auf einmal erledigen, weil dir die Zeit fehlt, alles einzeln zu machen. :is() ist dein treuer Begleiter. Stell dir vor, du möchtest eine Gruppe von Elementen hübsch machen. Anstatt jedes einzeln anzusprechen, springt :is() ein und sagt: „Kein Problem, ich kümmere mich um alle auf einmal.“ Es sieht aus, als wärst du ein Zauberkünstler, doch in Wirklichkeit erledigt :is() die Arbeit.

.parent :is(p.bunny, h3.bunny) {
    color: white;
}

Alle p-Elemente mit der Klasse .bunny und alle h3-Elemente mit der Klasse .bunny innerhalb von .parent werden weiß eingefärbt.

Token: :has

:has

Der Wachsamste von allen

Ah, und dann haben wir :has(), den Wächter. :has() ist nicht wie die anderen, die einfach tun, was du sagst. Nein, :has() schaut sich um, hebt eine Augenbraue und fragt: „Sind die Bedingungen erfüllt?“ Nur wenn :has() das Vorhandensein bestimmter Dinge bestätigt, wird es aktiv. Möchtest du, dass ein Element nur reagiert, wenn ein anderes in der Nähe ist? Dann ist :has() dein cleverer Agent, der sich um das Wesentliche kümmert.

.parent:has(.flower) {
    border: 3px solid orange;
}

Wenn .parent ein Kindelement mit der Klasse .flower enthält, bekommt es einen orangefarbenen Rahmen.

Token: where

:where

Der bescheidene Vertraute

Jetzt kommen wir zu :where(). :where() ist der Typ, der auf leisen Sohlen daher-kommt und seine Arbeit erledigt, ohne viel Aufhebens darum zu machen. Es macht all die Dinge, die :is() auch könnte, aber es tut so, als sei es dabei gar nicht anwesend. Du gibst :where() eine Aufgabe, und es geht ihr nach, aber es erwartet keinen Applaus. Es ist, als ob du jemandem einen Ratschlag gibst, aber dabei den Vorschlag offenlässt, dass andere es besser wissen könnten. :where() ist freundlich, hilfreich, und vor allem: bescheiden. Denn es will auf keinen Fall die Herrschaft (Spezifität) übernehmen, wenn später noch jemand mit einem besseren Plan auftaucht.

.parent :where(p.bunny) {
    color: white;
}

Alle p-Elemente mit der Klasse .bunny in .parent werden weiß, und :where() sorgt dafür, dass diese Regel keine andere überschreibt.

CSS
.box:is(.level-1, .level-3) {
    background: #3498db;
    border: 2px solid #2980b9;
}

.box:has(ul) {
    border: 2px dashed #e74c3c;
    background: #2c3e50;
}

.box:has(p) p:first-child {
    font-weight: bold;
    color: #1abc9c;
}

.box:where(.level-2, .level-4) {
    margin-left: 20px;
    background: #9b59b6;
    border: 2px solid #8e44ad;
}
Nach oben scrollen