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
Sie befinden sich: Startseite » CSS lernen – Webdesign erstellen » ::before / ::after – CSS erzeugt Inhalt und Design über Pseudoelemente

::before / ::after – CSS erzeugt Inhalt und Design über Pseudoelemente

Über die 2 Pseudoelemente ::before und ::after erzeugt CSS ein Element in der HTML-Ausgabe, das auch Text beinhalten kann und mit allen Möglichkeiten von CSS designt werden kann. Das wirklich Bemerkenswerte ist, dass CSS hier Inhalt in Form von Text und Grafiken in die HTML-Ausgabe platzieren kann, als wären diese im HTML-Dokument schon immer vorhanden gewesen! Eine kleine Besonderheit ist, dass dieser Inhalt nur angezeigt wird. Dieser ist quasi für Suchmaschinen nicht wirklich existent.

Der Inhalt wird vor (::before) bzw. nach (::after) dem von CSS selektierten Element erzeugt. Warum ist das überhaupt etwas Besonderes? So kann besonderes Design umgesetzt werden und Inhalt mit Hilfe von CSS im HTML-Dokument ergänzt werden.

Beispiele für die Tragweite von ::before / ::after

Wie erstellt man eine nummerierte Liste, in der die Unterpunkte die fortlaufende Nummerierung aus dem Hauptpunkt mitnehmen – hier im Beispiel „1.1, 1.2 usw.“? Hier spielt unser Element ::before seine Rolle

Beispiel für den Einsatz von ::before bei fortlaufender Nummerierung wie 1.1, 1.2 usw.
Beispiel für den Einsatz von ::before bei fortlaufender Nummerierung wie 1.1, 1.2 usw.

Ausgaben von den Attributinhalten eines HTML-Befehls können auf der Webseite sichtbar gemacht werden. Hier als Beispiel, dass beim Ausdruck die URLs von Links automatisch in Klammern nach der normalen Ausgabe angezeigt werden. Der dazu notwendige CSS-Code kommt später im Text – jetzt erst einmal das grundlegende Beispiel bei den verschiedenen Anwendungsmöglichkeiten.

Ein Link mit dem Text „_hier_“ wird automatisch mit der URL ausgegeben:

„Klicken Sie _hier_“ wird dann zu „Klicken Sie _hier (https://www.HTML-Seminar.de/)_“

Grundlegender Aufbau der Anweisung

Wir benötigen vor dem Element ::before bzw ::after immer erst einen Selektor in CSS, auf was sich unserer Anweisung beziehen soll.

Selektor::before { content: "Inhalt" Attribut1 Attribut2 "Inhalt"; }
Selektor::before { content: url() Attribut1 Attribut2 "Inhalt"; }
Selektor::after { content: "Inhalt" Attribut1 Attribut2 "Inhalt"; }

Griffiger wird es anhand eines Beispiels. Wir wollen auf unserer Website vor der Breadcrumb-Navigation (Brotkrumennavigation) den Text „Sie befinden sich:“ über die CSS-Anweisung ::before einblenden.

Unser benötigter HTML-Code dazu:

<div id="breadcrumb"><a href="index.htm">Startseite</a></div>

Und jetzt der CSS-Teil:

#breadcrumb::before {
    content: "Sie befinden sich: ";
}

Schaut man nun den reinen Quellcode im Browser an, ist nichts von dem Text „Sie befinden sich:“ weit und breit zu sehen.

Gehen wir allerdings in den „Inspektormodus“ sieht man schön das eingefügte ::before.

Ausgabe Quellcode von ::before und seine Platzierung
Ausgabe Quellcode von ::before und seine Platzierung

Der erzeugte Inhalt befindet sich zwischen dem Bereich <div> und dem HTML-Befehl für den Link <a href….

Aus didaktische Gründen nutzen wir gleich noch die Anweisung ::after und lassen dort den Text „(NEU)“ ausgeben.

Damit man im Beispiel visuell die Positionen der Elemente gut sieht, werden noch Hintergrundfarben für die verschiedenen Bereiche genutzt:

#breadcrumb {
    background-color: yellow;
    padding: 30px;
}

#breadcrumb::before {
    content: "Sie befinden sich: "; 
    background-color: orange;
}

#breadcrumb::after {
    content: " (NEU)";
    background-color: limegreen;
}

#breadcrumb a {
    background-color: skyblue;
}

Und nun sieht man schön die Auswirkungen. Dem Bereich #breadcrumb wurde die Hintergrundfarbe „gelb“ zugewiesen und einen Innenabstand von 30 Pixeln. Somit umschließt er alles und durch den Innenabstand sieht man gut, was alles dazugehört Dadurch sieht man sofort, dass unser Element ::before und ::after sich innerhalb des DIVs befindet und unseren HTML-Inhalt des Links umschließt.

durch ::before und ::after umschlossenes Element
durch ::before und ::after umschlossenes Element

Wie man am Beispiel sieht, können wie gewohnt beliebig viele weitere Zuweisungen in CSS für diesen neuen Bereich erfolgen. Im Beispiel wurden dem über die CSS-Anweisung content: erstellten Inhalt „Sie befinden sich:“ zusätzlich die Hintergrundfarbe background-color: orange; mitgegeben. Wichtig ist das typische Semikolon zum Trennen der verschiedenen CSS-Anweisungen.

Was hat es aber mit den Attributen zu tun, die in der „Grundlegender Aufbau der Anweisung“ bereits angezeigt wurden?

Sonderzeichen integrieren über ::befor und ::after

Versucht man über ::befor Sonderzeichen wie beispielsweise das Aufzählungszeichen • (englisch Bullet) zu integrieren, dann klappt das weder über die typische Schreibweise &bull; noch über die Unicode-Notation &#2022;

Aber in CSS kann über den linksseitigen Schrägstrich (Backslash) Sonderzeichen genutzt werden – allerdings mit 6 Stellen Gesamtlänge (nach links einfach mit Nullen auffüllen).

So bekommen wir ein Aufzählungszeichen und ein Leerzeichen integriert über:

.sitemap::before {
    content: "\002022 \000020";
}

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

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:

Vielen Dank für Ihre Hilfe

    E-Books zum Kurs

    von HTML-Seminar.de

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

    Mehr Details