6.1 Propriété content
Les pseudoelements ::before
et ::after
permettent d'ajouter du contenu avant et après le contenu d'un élément, sans modifier le code HTML.
Ils sont très utilisés à des fins décoratives, pour améliorer l'interface utilisateur et créer des pages web plus interactives.
Qu'est-ce que les pseudoelements ::before et ::after?
Les pseudoelements ::before
et ::after
créent des éléments virtuels qui s'insèrent respectivement avant et après
le contenu de l'élément sélectionné. Ces pseudoelements sont souvent utilisés pour ajouter des icônes, des éléments décoratifs, ou d'autres effets visuels.
Syntaxe before:
sélecteur::before {
content: "texte ou autres valeurs";
/* styles */
}
Syntaxe after:
sélecteur::after {
content: "texte ou autres valeurs";
/* styles */
}
Propriété content
La propriété clé pour les pseudoelements ::before
et ::after
est content
. Cette propriété définit le contenu
du pseudoelement. Il peut s'agir d'une chaîne de texte, d'une image, ou même d'une valeur vide, si seul un effet visuel est nécessaire.
Valeurs possibles de la propriété content:
- Texte:
"texte"
- Image:
url("path/to/image.png")
- Valeur vide:
""
- Attributs:
attr(nomAttribut)
- Compteurs:
counter(nom)
6.2 Exemples d'utilisation de ::before et ::after
Ajouter des éléments décoratifs
Exemple 1: Ajouter une icône avant le texte
Dans cet exemple, le pseudoelement ::before
est utilisé pour ajouter une icône avant le texte d'un lien.
margin-right
ajoute de l'espace entre l'icône et le texte:
/* Ajouter une icône avant le texte d'un lien */
a::before {
content: "🔗";
margin-right: 5px;
}
Exemple 2: Ajouter un élément décoratif après un paragraphe
Dans cet exemple, le pseudoelement ::after
ajoute un élément décoratif après un paragraphe. display: block
et
text-align: right
sont utilisés pour aligner l'élément à droite:
/* Ajouter un élément décoratif après un paragraphe */
p::after {
content: "❦";
display: block;
text-align: right;
color: red;
}
Créer des bordures et arrière-plans décoratifs
Exemple 3: Bordure décorative autour d'un élément
Dans cet exemple, le pseudoelement ::before
est utilisé pour créer une bande décorative au-dessus de l'élément
div
. position: absolute
et top: -10px
permettent de positionner la bande au-dessus de l'élément:
/* Bordure décorative autour d'un élément */
div::before {
content: "";
display: block;
width: 100%;
height: 10px;
background-color: #3498db;
position: absolute;
top: -10px;
left: 0;
}
Exemple 4: Ajout automatique de guillemets
Dans cet exemple, les pseudoelements ::before
et ::after
sont utilisés pour ajouter des guillemets autour d'un bloc de citation:
/* Ajout automatique de guillemets autour d'une citation */
blockquote::before {
content: "“";
font-size: 2em;
color: #ccc;
}
blockquote::after {
content: "”";
font-size: 2em;
color: #ccc;
}
Exemple 5: Numérotation des titres
Dans cet exemple, le pseudoelement ::before
est utilisé pour ajouter un numéro devant un titre h2
.
counter-increment
augmente la valeur du compteur, et content: counter(section)
insère la valeur actuelle du compteur:
/* Numérotation des titres */
h2::before {
counter-increment: section;
content: counter(section) ". ";
font-weight: bold;
}
6.3 Application et stylisation des pseudoelements
Stylisation des pseudoelements
Les pseudoelements peuvent être stylisés de la même manière que n'importe quel autre élément. Ils supportent la plupart des propriétés CSS, incluant couleur, fond, bordures, dimensions et positionnement.
Utilisation des pseudoelements pour créer des mises en page complexes
Les pseudoelements sont souvent utilisés pour créer des éléments décoratifs dans les mises en page, comme les bordures, ombres et autres effets visuels, sans avoir besoin d'ajouter des éléments HTML supplémentaires.
Exemple: chaque élément de liste aura un marqueur bleu avant le texte:
ul li::before {
content: "•";
color: blue;
margin-right: 5px;
}
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
6.4 Exemple de réalisation complète
/* Ajouter une icône avant le texte d'un lien */
a::before {
content: "🔗";
margin-right: 5px;
}
/* Ajouter un élément décoratif après un paragraphe */
p::after {
content: "❦";
display: block;
text-align: right;
color: red;
}
/* Bordure décorative autour d'un élément */
.decorative-box {
position: relative;
}
.decorative-box::before {
content: "";
display: block;
width: 100%;
height: 10px;
background-color: #3498db;
position: absolute;
top: -10px;
left: 0;
}
/* Ajout automatique de guillemets autour d'une citation */
blockquote::before {
content: "“";
font-size: 2em;
color: #ccc;
}
blockquote::after {
content: "”";
font-size: 2em;
color: #ccc;
}
/* Numérotation des titres */
h2::before {
counter-increment: section;
content: counter(section) ". ";
font-weight: bold;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exemple de pseudoelements ::before et ::after</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#">Lien avec icône</a>
<p>Paragraphe avec élément décoratif après le texte</p>
<div class="decorative-box">Élément avec bordure décorative</div>
<blockquote>Citation avec guillemets automatiques</blockquote>
<h2>Titre avec numérotation</h2>
<h2>Un autre titre</h2>
</body>
</html>
GO TO FULL VERSION