CodeGym /Cours /Frontend SELF FR /Combinaison des pseudo-classes

Combinaison des pseudo-classes

Frontend SELF FR
Niveau 30 , Leçon 3
Disponible

8.1 Concepts de base

Combiner les pseudo-classes et les pseudo-éléments en CSS te permet de créer des sélecteurs puissants et flexibles pour styliser des éléments en fonction de leur état, structure et contenu. Cela ouvre de nombreuses possibilités pour créer des styles complexes et dynamiques qui améliorent l'interface utilisateur et l'expérience d'interaction avec la page web.

Les bases de la combinaison

Pseudo-classes

Les pseudo-classes sont indiquées par un seul deux-points (:) et s'appliquent aux éléments en fonction de leur état ou position. Par exemple :

  • :hover — s'applique lorsque le curseur survole l'élément
  • :first-child — choisit le premier élément enfant du parent

Pseudo-éléments

Les pseudo-éléments sont indiqués par deux deux-points (::) et sont utilisés pour styliser des parties d'éléments ou ajouter du contenu. Par exemple :

  • ::before — ajoute du contenu avant l'élément
  • ::first-letter — stylise la première lettre de l'élément

Combinaison

Les pseudo-classes et les pseudo-éléments peuvent être combinés pour créer des sélecteurs complexes, permettant d'appliquer des styles à des éléments en fonction de leur état et structure.

Syntaxe :

    
      selector:pseudo-classe::pseudo-élément {
        propriétés: valeurs;
      }
    
  

8.2 Combinaison pour l'interactivité

Exemple 1: Stylisation de la première lettre au survol

Dans cet exemple, la première lettre du paragraphe s'agrandit et devient rouge lorsque le curseur survole le paragraphe :

CSS
    
      /* Stylisation de la première lettre du paragraphe au survol du curseur */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
HTML
    
      <p>Hover over this paragraph to see the first letter change.</p>
    
  

Exemple 2: Ajouter du contenu avant un lien au focus

Dans cet exemple, une icône est ajoutée avant le lien et devient bleue lorsque le lien reçoit le focus :

CSS
    
      /* Ajouter une icône avant le lien au focus */

      a:focus::before {
        content: "🔗 ";
        color: #3498db;
      }
    
  

8.3 Combinaison pour styliser la structure

Exemple 3: Styliser le premier paragraphe à l'intérieur d'un div en ajoutant du contenu

Dans cet exemple, la première ligne du premier paragraphe à l'intérieur d'un div est mise en gras et colorée en vert :

CSS
    
      /* Styliser la première ligne du premier paragraphe à l'intérieur du div */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }
    
  

Exemple 4: Ajouter un élément décoratif après le dernier élément de la liste

Dans cet exemple, un élément décoratif est ajouté après le dernier élément de la liste et est coloré en rouge :

CSS
    
      /* Ajouter un élément décoratif après le dernier élément de la liste */

      ul li:last-child::after {
        content: "❦";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }
    
  

8.4 Combinaison pour des conditions complexes

Exemple 5: Stylisation des éléments de liste pairs au survol

Dans cet exemple, les éléments de liste pairs reçoivent un fond gris clair et un texte bleu au survol du curseur :

CSS
    
      /* Stylisation des éléments de liste pairs au survol du curseur */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }
    
  

Exemple 6: Stylisation des liens actifs déjà visités

Dans cet exemple, les liens qui ont été visités et qui sont en état actif sont colorés en orange et soulignés :

CSS
    
      /* Stylisation des liens actifs déjà visités */

      a:visited:active {
        color: #e67e22;
        text-decoration: underline;
      }
    
  

8.5 Exemple de mise en œuvre complète

CSS
    
      /* Styliser la première ligne du premier paragraphe à l'intérieur du div */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }

      /* Ajouter un élément décoratif après le dernier élément de la liste */

      ul li:last-child::after {
        content: "❦";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }

      /* Stylisation des éléments de liste pairs au survol du curseur */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }

      /* Ajouter une icône avant le lien au focus */

      a:focus::before {
        content: "🔗 ";
        color: #3498db;
      }

      /* Stylisation de la première lettre du paragraphe au survol du curseur */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
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 combinaison de pseudo-classes et pseudo-éléments</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div>
            <p>C'est le premier paragraphe dans le div.</p>
            <p>C'est le deuxième paragraphe dans le div.</p>
          </div>
          <ul>
            <li>Élément de la liste 1</li>
            <li>Élément de la liste 2</li>
            <li>Élément de la liste 3</li>
            <li>Élément de la liste 4</li>
          </ul>
          <a href="#">Lien avec icône au focus</a>
          <p>Survole ce paragraphe pour voir l'effet sur la première lettre.</p>
        </body>
      </html>
    
  
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION