Les pseudo éléments CSS39

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.

Afficher la solution

Solution :

<!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.

Afficher la solution

Solution :

Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href si nécessaire.

<link  rel="stylesheet" type="text/css" href="style.css">

Les différents exercices à venir se ferront tous dans la même page HTML. Vous devez donc prendre vos précautions et

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 :

Aperçu exercice 1
Afficher la solution

Solution :

Code HTML :

<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>

Code 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 :

Aperçu exercice 1.2
Afficher la solution CSS

Solution CSS :

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

Aperçu exercice 2.1
Afficher la solution

Solution :

Code HTML :

<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>

Code CSS :

.exo2 {
  border: 1px solid #ccc;
  background-color: #eee;
  padding: 1rem;
}

En utilisant un pseudo élément, reproduisez la mise en forme ci-dessous :

Aperçu exercice 2.2
Afficher la solution CSS

Solution CSS :

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

Aperçu exercice 3.1
Afficher la solution

Solution :

Code HTML :

<h1 class="circles">Lorem ipsum dolor sit consectetur</h1>

Code 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 :

Aperçu exercice 3.2
Afficher la solution CSS

Solution CSS :

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

Afficher la solution

Solution :

Code HTML :

<h1 class="number">Foo</h1>
<h1 class="number">Bar</h1>
<h1 class="number">Baz</h1>
<h1 class="number">Qux</h1>

Code 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 :

Aperçu exercice 4
Afficher la solution CSS

Solution CSS :

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;
}

Sauf mention contraire*, l'article Les pseudo éléments [CSS39] et son contenu par Julien Crego sont mis à disposition selon les termes de la licence Creative Commons

Licence Creative Commons

Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

Cette licence vous permet de remixer, arranger, et adapter cette œuvre à des fins non commerciales tant que vous créditez la source en citant le nom des auteurs et que les nouvelles œuvres sont diffusées selon les mêmes conditions.

* Cette notice est intégrée automatiquement à la fin de chaque article de ce site.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.