Cet exercice se compose de plusieurs petits exercices tournant autour de l’utilisation des pseudos éléments ::before
et ::after
.
Mise en place de l’exercice
Créez un dossier racine nommé exo-css39 à l’emplacement de votre choix.
Dans le dossier racine, créez un fichier HTML intitulé exo-css39.html avec la structure de base.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Titre de la page</title> </head> <body> </body> </html>
Créez un fichier CSS intitulé style.css et liez-le à la page HTML.
Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href
si nécessaire afin qu’elle corresponde à l’emplacement et au nom du fichier CSS.
<link rel="stylesheet" type="text/css" href="style.css">
Les différents exercices à venir se feront tous dans la même page HTML. Vous devez donc prendre vos précautions lors du nommage de vos classes.
Exercice 1
Créez un paragraphe contenant le texte suivant :
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut tortor felis, finibus dapibus nibh id, faucibus sodales ligula. Morbi sit amet tincidunt ex. Pellentesque eu velit facilisis, accumsan massa in, mattis massa. Nullam efficitur dolor non ornare rhoncus. Aenean sit amet tellus a nibh elementum dignissim. Nunc dignissim ante eu lectus elementum varius. Mauris molestie venenatis eros.
En utilisant un pseudo élément, ajoutez un carré au début du paragraphe comme dans l’image ci-dessous :
<p class="exo1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut tortor felis, finibus dapibus nibh id, faucibus sodales ligula. Morbi sit amet tincidunt ex. Pellentesque eu velit facilisis, accumsan massa in, mattis massa. Nullam efficitur dolor non ornare rhoncus. Aenean sit amet tellus a nibh elementum dignissim. Nunc dignissim ante eu lectus elementum varius. Mauris molestie venenatis eros.</p>
Solution CSS :
.exo1::before { display: inline-block; content: ""; background-color: red; width: 0.8rem; height: 0.8rem; margin-right: 0.5rem; }
En utilisant un deuxième pseudo élément, ajoutez un second carré à la fin du paragraphe comme dans l’image ci-dessous :
.exo1::before, .exo1::after { display: inline-block; content: ""; width: 0.8rem; height: 0.8rem; } .exo1::before{ background-color: red; margin-right: 0.5rem; } .exo1::after{ background-color: blue; margin-left: 0.5rem; }
Exercice 2
Créez un paragraphe contenant le texte suivant :
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut tortor felis, finibus dapibus nibh id, faucibus sodales ligula. Morbi sit amet tincidunt ex. Pellentesque eu velit facilisis, accumsan massa in, mattis massa. Nullam efficitur dolor non ornare rhoncus. Aenean sit amet tellus a nibh elementum dignissim. Nunc dignissim ante eu lectus elementum varius. Mauris molestie venenatis eros.
Effectuez la mise en forme du paragraphe pour obtenir le résultat suivant :
<p class="exo2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut tortor felis, finibus dapibus nibh id, faucibus sodales ligula. Morbi sit amet tincidunt ex. Pellentesque eu velit facilisis, accumsan massa in, mattis massa. Nullam efficitur dolor non ornare rhoncus. Aenean sit amet tellus a nibh elementum dignissim. Nunc dignissim ante eu lectus elementum varius. Mauris molestie venenatis eros.</p>
Solution CSS :
.exo2 { border: 1px solid #ccc; background-color: #eee; padding: 1rem; }
En utilisant un pseudo élément, reproduisez la mise en forme ci-dessous :
.exo2 { border: 1px solid #ccc; background-color: #eee; padding: 1rem 1rem 1rem 2.5rem; position: relative; } .exo2::before { display: block; content: ""; position: absolute; top: 10%; left: 1rem; width: 0.5rem; height: 80%; background-color: #666; }
Exercice 3
Créez un titre de niveau 1 contenant le texte suivant :
Lorem ipsum dolor sit consectetur
En prenant soin, au préalable, d’importer la police Roboto à partir de Google Font, reproduisez la mise en forme suivante :
<h1 class="circles">Lorem ipsum dolor sit consectetur</h1>
Solution CSS :
@import url("https://fonts.googleapis.com/css?family=Roboto:400&display=swap"); .circles { font-family: Roboto, sans-serif; font-variant: small-caps; font-weight: normal; }
En utilisant deux pseudos éléments, reproduisez la mise en forme ci-dessous :
.circles { position: relative; padding-left: 1.5em; font-family: Roboto, sans-serif; font-variant: small-caps; font-weight: normal; } .circles::before, .circles::after { display: block; content: ""; position: absolute; border-radius: 50%; } .circles::before { width: 1em; height: 1em; left:0; background-color: #666; } .circles::after { width: 0.8em; height: 0.8em; top:0.4em; left:0.5em; background-color: rgba(125,125,125,0.5); }
Exercice 4
Créez quatre titres de niveau 1 contenant le texte de votre choix.
En utilisant un pseudo élément et le système de compteur de CSS, ajoutez un numéro automatiquement devant vos titres.
Vous pouvez vous aider de l’article Numérotation automatique des titres en CSS pour apprendre à utiliser le système de compteur de CSS.
<h1 class="number">Foo</h1> <h1 class="number">Bar</h1> <h1 class="number">Baz</h1> <h1 class="number">Qux</h1>
Solution CSS :
body{ counter-reset: number; } .number { counter-increment: number; } .number::before { content: counter(number); }
Effectuez la mise en forme pour obtenir le résultat suivant :
body{ counter-reset: number; } .number { counter-increment: number; } .number::before { content: counter(number); display: inline-block; width: 2.2rem; text-align: center; border-radius: 0.3rem; margin-right: 0.5rem; background-color: #666; color: #fff; }