Content opmaken met :before en :after

Hieronder staat een lijstje met kleuren. Bij sommige staat er een icon voor of achter, bij andere staat er tekst voor of achter, bij weer andere staat er aan beide kanten wat.

Je kunt dit bereiken door het voor elk plaatje apart te programmeren, maar dat is veel werk. Het kost de browser ook vrij veel moeite om steeds te controleren of het plaatje er al is en het eventueel op te halen.

Het kan ook slimmer, met CSS. Je gebruikt dan de pseudo-klassen :before en :after. De namen van deze pseudo-klassen spreken voor zich. Ze zorgen ervoor dat er 'iets' voor resp. na een HTML-element op het scherm wordt gezet. Dat kan zowel tekst zijn als een plaatje.

Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<style>
.niets { list-style-type:none; font-weight:bold; line-height:40px }
.demoVoor { list-style-type:none; font-weight:bold; line-height:40px }
.demoVoor:before { content:url(../images/ipad.png); padding-right:5px }
.demoNa { list-style-type:none; font-weight:bold; line-height:40px }
.demoNa:after { content:url(../images/photoshop.png); padding-left:5px }
.tekstVoor { list-style-type:none; font-weight:bold; line-height:40px }
.tekstVoor:before {content:"Dit vindt iedereen mooi:"; color:lime;
    background-color:#444; padding-right:5px }
.tekstNa { list-style-type:none; font-weight:bold; line-height:40px }
.tekstNa:after { content:"Speciale aanbieding!"; color:red;
    background-color:yellow; padding-left:5px }
</style>

(Zet dit in de <BODY>).

<ul>
<li class="demoVoor">Rood</li>
<li class="niets">Blauw</li>
<li class="demoVoor">Groen</li>
<li class="tekstVoor demoNa"> Oranje</li>
<li class="demoNa">Geel</li>
<li class="demoVoor demoNa">Paars</li>
<li class="tekstNa demoVoor">Wit</li>
</ul>

 
terug

html-361; Laatste wijziging: 27 april 2020