Videos eBook Forum Kontakt

jetzt Videos kaufen
zum Lernen von HTML,
CSS und Webdesign

Jetzt das HTML-Seminar bestellen als
Video-Tutorial mit über 210 Videos:
von den Grundlagen bis zur fertigen Website
Video-Kurs HTML5, CSS & Webdesign

Video-Kurs bestellen HTML5, CSS & Webdesign
Video-Kurs bestellen HTML5, CSS & Webdesign

Anwendungsbeispiele für ::before / ::after und content:

Attributinhalte aus HTML als Text sichtbar machen

Durch geschickte Kombination von CSS und ::before / ::after und content: nimmt die Nützlichkeit zu. Nehmen wir einfach mal das Standardproblem, dass ein Nutzer eine Webseite auf Papier ausdruckt. Jetzt gehen alle URLs, die nicht direkt sichtbar sind verloren und auf dem Ausdruck stehen nur noch Dinge wie „mehr im Kapitel XY“.

So sieht die normale Ausgabe von einem Link aus:

Wir möchten als Ausgabe zusätzlich die URI in Klammern ausgeben in dieser Form:

Schauen wir uns die Lösung in HTML und CSS an:

<a href="https://www.html-seminar.de/css-lernen.htm">CSS lernen</a>

Hier können wir bestimmen, dass im Ausdruck die URL zusätzlich nach dem Text ausgegeben wird. Das bewirkt im CSS dann folgende Anweisung:

a::after { 
   content: " (" attr(href) ") ";
}

Wollen wir es nur auf den Druck einschränken, dann die Anweisung in das entsprechende Media-Query packen:

@media only print {
	a::after { 
	   content: " (" attr(href) ") ";
	}
}

Der zusätzliche Text bei Bildern soll ausgegeben werden

Das Problem ist, dass bei Bildern hinterlegte Titel und Alt-Texte normalerweise nicht auf dem Bildschirm angezeigt werden bzw. erst wenn man mit der Maus auf das Bild fährt. Über die folgende CSS-Anweisung hätte man nun diese sofort sichtbar. So kann man seine kompletten Texte dann zum Korrekturlesen vorbereiten.

img::after { 
    content: " (ALT: " attr(alt) ") (TITLE: " attr(title) ")";
}

Warum 2 Doppelpunkte bei ::before / ::after verwendet werden

Pseudoelemente werden in CSS mit einem Doppelpunkt genutzt. Hier ist einer der bekanntesten :hover – dieser selektiert ein Element, wenn die Maus es berührt.

Die zwei Doppelpunkte dienen dazu, Pseudo-Inhalt von Pseudo-Selektoren zu unterscheiden. Mit ::before und ::after erzeugen wir Inhalt (sprich Pseudo-Inhalt) und wählen kein Element aus. Das muss bereits davor geschehen.

So gut wie jeder Browser unterstützt beide Schreibweisen – sprich wir können auch genauso :before nutzen. Der springende Punkt ist, diese „so gut wie jeder Browser“. Der IE 8 unterstützt nicht die 2-Doppelpunktschreibweise. Wenn man also auch den IE8 unterstützten möchte/muss, dann nur 1 Doppelpunkt nutzen.

Kein Inhalt im DOM sichtbar!

Wichtig – erzeugter Inhalt taucht im DOM nicht auf!

weitere eigene Projekte: