CodeGym /Cours /Frontend SELF FR /Pseudoelements ::before et ::after

Pseudoelements ::before et ::after

Frontend SELF FR
Niveau 30 , Leçon 1
Disponible

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:

CSS
    
      /* 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:

CSS
    
      /* 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:

CSS
    
      /* 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:

CSS
    
      /* 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:

CSS
    
      /* 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:

CSS
    
      ul li::before {
        content: "•";
        color: blue;
        margin-right: 5px;
      }
    
  
HTML
    
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
      </ul>
    
  

6.4 Exemple de réalisation complète

CSS
    
      /* 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;
      }
    
  
HTML
    
      <!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>
    
  
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION