# Pseudoklassen & Pseudoelemente
# Pseudoklassen
Eine Pseudoklasse kann in CSS speziell gestyled werden, z.B. wenn…
- ein User mit der Maus über ein Element fährt
- ein User ein Eingabefeld fokussiert
Die Syntax für Pseudoklassen ist…
selector:pseudo-class {
property: value;
}
Manchmal siehst du eine Pseudoklasse auch mit zwei Doppelpunkten ::pseudo-class
. Ein oder zwei Doppelpunkte werden vom Browser erkannt. Nachfolgend siehst du den Syntax mit einem Doppelpunkt :pseudo-class
.
# :hover
:hover
wird angewandt, wenn der User mit der Maus über ein Element fährt.
<a class="button" href="https://duckduckgo.com">Ich bin ein Button</a>
.button {
padding: 0.5rem 1rem;
color: white;
background-color: royalblue;
border-radius: 0.5rem;
}
.button:hover {
background-color: orange;
}
Ergebnis
# :active
:active
wird angewandt, wenn der User die Maustaste gedrückt hält über dem Element. So kann man beispielsweise den Eindruck erzeugen, dass etwas “eingedrückt” wird und einen Button haptisch erscheinen lassen.
<a class="button" href="https://duckduckgo.com">Ich bin ein Button</a>
.button {
padding: 0.5rem 1rem;
color: white;
background-color: royalblue;
border-radius: 0.5rem;
}
.button:active {
background-color: darkblue;
box-shadow: inset 0 -2px 4px black;
}
Ergebnis
# :focus
:focus
wird angewandt, wenn ein Element fokussiert ist. Meistens kennst du das von Eingabefeldern, bei denen du mit TAB
zum nächsten Eingabefeld gehen kannst und es somit “fokussierst”.
<input class="inputfield" type="text" value="Fokussiere mich" />
.inputfield:focus {
border: 4px solid tomato;
color: royalblue;
}
Ergebnis
# :first-child
:first-child
wird angewandt, wenn ein Element das erste Unterelement (“Child”) ist und erlaubt es, dieses anders zu stylen. In folgendem Beispiel ist li
das erste Child von ul
und erhält deswegen ein eigenes Styling.
<ul class="list">
<li>Platz 1</li>
<li>Platz 2</li>
<li>Platz 3</li>
</ul>
li:first-child {
color: tomato;
font-weight: bold;
}
Ergebnis
- Platz 1
- Platz 2
- Platz 3
# :last-child
:last-child
wird angewandt, wenn eine Element das letzte Unterelement (“Child”) ist und erlaubt es, dieses anders zu stylen. In folgendem Beispiel ist das dritte li
das letzte Child von ul
und erhält deswegen ein eigenes Styling.
<ul>
<li>Platz 1</li>
<li>Platz 2</li>
<li>Platz 3</li>
</ul>
li:last-child {
color: tomato;
font-weight: bold;
}
Ergebnis
- Platz 1
- Platz 2
- Platz 3
# :nth-child()
:nth-child()
funktioniert ähnlich wie :first-child
und :last-child
. Der Unterschied ist, dass es erlaubt auch nur das zweite Child auszuwählen, oder sogar komplexe Regeln wie “style das erste und jedes zweite Child”.
<ul>
<li>Platz 1</li>
<li>Platz 2</li>
<li>Platz 3</li>
<li>Platz 4</li>
<li>Platz 5</li>
</ul>
li:nth-child(2) {
color: tomato;
font-weight: bold;
}
li:nth-child(3) {
color: orange;
font-weight: bold;
}
Ergebnis
- Platz 1
- Platz 2
- Platz 3
- Platz 4
- Platz 5
Zum vereinfachten Scannen von Listen ist es manchmal praktisch, wenn jede Zahl mit ungerader Zahl hervorgehoben wird.
li:nth-child(odd) { /* odd = ungerade, even = gerade */
background-color: whitesmoke;
}
Ergebnis
- Platz 1
- Platz 2
- Platz 3
- Platz 4
- Platz 5
Weiterführende Links
- nth-child Tester
- Dokumentation über Pseudoklassen (w3schools.com)
# Pseudoelemente
Pseudoelemente können benutzt werden, um per CSS eigene Elemente vor und nach einem Element zu erstellen. Warum das nützlich ist, erfährst du gleich.
Verschiedene Länder haben unterschiedliche Anführungszeichen. In Deutschland sind die Anführungszeichen „Text“ geläufig, während in der Schweiz «Text» gebraucht wird.
<blockquote class="schweiz">
D’r schnäller isch d’r gschwinder.
</blockquote>
<blockquote class="deutschland">
Wer zuerst kommt, mahlt zuerst.
</blockquote>
.schweiz:before {
content: "«"; /* Das content-Attribute muss immer vorhanden sein, sonst wird :before oder :after nicht erkannt */
color: tomato;
}
.schweiz:after {
content: "»";
color: tomato;
}
.deutschland:before {
content: "„";
color: tomato;
}
.deutschland:after {
content: "“";
color: tomato;
}
Ergebnis
D’r schnäller isch d’r gschwinder.
Wer zuerst kommt, mahlt zuerst.
Weiterführende Links
- Dokumentation über Pseudoelemente (w3schools.com)