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!
Weiterempfehlen • Social Bookmarks • Vielen Dank
Bitte unterstützen Sie dieses Projekt
Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).
Spenden
Sie können uns eine Spende über PayPal zukommen lassen.
Weiterempfehlungen
Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.
Bücher über Amazon
Bestellen Sie Bücher über folgende Links bei Amazon:
Vielen Dank für Ihre Hilfe
-
E-Books zum Kurs
von HTML-Seminar.deE-Books mit rund 930 Seiten Umfang als PDF. Alle 3 zu einem Preis.
Mehr Details