Pseudoelemente

Während die klassischen Selektoren auf das selektierte Element beschränkt sind, können wir mit "Pseudoelementen" zusätzlichen "Content" erschaffen, der nicht im HTML-Elementbaum steht.

Das bedeutet, dass dieser "Content" zwar vom Browser gerendert wird, aber nicht in dem "DOM" dargestellt wird und auch nicht das HTML-Dokument ändert. "Pseudoelemente" dürfen nicht mit "Pseudoklassen" verwechselt werden. "Pseudoklassen" werden verwendet, um Elemente mit einer bestimmten Eigenschaft zu selektieren. "Pseudoelemente" hingegen erweitern bestimmte Elemente oder Bereiche die im "DOM" nicht existieren. "Pseudoelemente" werden mit doppeltem Doppelpunkt geschrieben, um von den "Pseudoklassen" zu unterscheiden, die bekanntlich mit einfachem Doppelpunkt geschrieben werden. Dabei ist der doppelte Doppelpunkt nicht mal erforderlich, weil moderne Browser auch die Schreibweise mit einfachem Doppelpunkt verstehen und der Internetexplorer den doppelten Doppelpunkt in einigen Versionen eh nicht versteht.


::first-line

Das Pseudoelement "::first-line" wird verwendet, um die erste Zeile eines Textes anzusprechen.

Wenn wir nun auf unser <div>-Bereich zugreifen, in dem genug Text steht, das er über eine Zeile hinaus geht, dann können wir mit dem Pseudoelement "::first-line" die erste Zeile des Textes Verändern, ohne das der Rest des Textes davon beeinflusst wird.

Pseudoelement first-line

div::first-line {
 font-weight: bold;
}
Erste Zeile wird in fetter Schrift dargestellt

::first-letter

Das Pseudoelement "::first-letter" wird verwendet, um den ersten Buchstaben eines Textes anzusprechen. Betrachten wir wieder den <div>-Bereich und verändern den ersten Buchstaben des Textes.

Pseudoelement first-letter

div::first-letter {
 color: blue;
 font-size: 3rem;
}
Der erste Buchstabe wir größer und in Blau dargestellt

::before & ::after

Die Pseudoelemente "::before" und "::after" können genutzt werden, um zusätzlichen Content innerhalb eines Elementes aber vor oder nach dem eigentlichen Inhalt hinzuzufügen.

Wir wenden beide Pseudoelemente auf den <div>-Bereich an.

Pseudoelemente ::before und ::after

div::before {
 content: 'Pseudoelement before! ';
}
div::after {
 content: ' Pseudoelement after!';
}

Der zusätzliche Inhalt ist deutlich zu erkennen.

CSS erzeugt zusätzlichen Inhalt für das Element

Anstelle des Textes kann die Eigenschaft "content" auch ein Bild von einer URL wiedergeben.

Pseudoelemente ::before mit verweis auf Grafik

div::before {
 content: url(Pfad zum Bild);
}

Weiter mit Kaskade