Ideal zum Lernen:
Kurs als Videos
Video-Kurs HTML5, CSS
& Webdesign
HTML-Kurs, CSS u. Webdesign lernen & die eigene Website erstellen
Videos eBook Forum Kontakt

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

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

    E-Books zum Kurs

    von HTML-Seminar.de

    E-Books mit rund 930 Seiten Umfang als PDF. Alle 3 zu einem Preis.

    Mehr Details

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 :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

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:

Fehler melden

Vielen Dank für Ihre Hilfe