PhpBB Lab Académie

Rechercher dans ce cours

Cours CSS : Apprendre le CSS : cours gratuit pour débutants

Auteur : phpBB-Lab. Date de cette version : lun. 21 sept. 2026 02:17.

Comparer les sélecteurs sans dérégler les introductions

Objectif de la leçon

Comprendre la spécificité entre p, .introduction et p.introduction, lire un sélecteur descendant utile au menu et retirer les règles de test.

Explications

Compléter ce que l’ordre ne suffit pas à expliquer

Nous repartons de l’unique règle .introduction { color: #374151; }. Les trois paragraphes concernés sont ceux déjà identifiés sur les trois pages.

La spécificité se calcule à partir de la composition d’un sélecteur. Elle ne mesure pas combien d’éléments sont réellement sélectionnés, ni la longueur du nom de classe. Nous comparons ici des règles ordinaires de même origine, sans styles en ligne, !important ni couches de cascade.

1. Une classe face à un élément

Ajoutez temporairement en bas de styles.css :

p {
    color: #7f1d1d;
}



Les introductions restent #374151 : leur classe a une spécificité supérieure à celle du simple sélecteur p. D’autres paragraphes peuvent devenir rouges, car ils n’ont pas de déclaration directe concurrente plus spécifique. C’est un effet global de l’essai, pas une instruction à conserver.

La règle p ne gagne donc pas seulement parce qu’elle est écrite après .introduction.

2. Combiner un élément et une classe

Le sélecteur p.introduction, sans espace, signifie « un p qui porte la classe introduction ». Il décrit le même élément avec deux conditions.

Ajoutez temporairement :

p.introduction {
    color: #163b65;
}



Ce sélecteur contient une classe et un type d’élément. Il est plus spécifique que .introduction seule : les trois introductions deviennent bleues. Dans les comparaisons de cette leçon, l’ordre est donc p, puis .introduction, puis p.introduction, de la spécificité la plus faible à la plus forte.

À spécificité égale, l’ordre étudié précédemment intervient. Ces trois exemples ne constituent pas une liste complète de tous les sélecteurs CSS.

3. Ne pas confondre l’espace et l’absence d’espace

Pour préparer la navigation, lisez maintenant nav a. L’espace signifie « les liens a qui se trouvent à l’intérieur d’un nav », même avec ul et li entre les deux. C’est un sélecteur descendant.

Dans notre site, il correspond aux liens Accueil, À propos et Contact. Il ne signifie pas qu’un même élément serait à la fois nav et a. Nous n’ajoutons aucune règle nav a pour le moment ; cette lecture servira à la mise en forme du menu.

De même, une classe suivie d’un espace puis a pourra cibler les liens contenus dans cet élément.

4. Corriger avec le sélecteur nécessaire, pas le plus fort possible

Un sélecteur plus spécifique n’est pas automatiquement un meilleur choix. Il peut rendre les adaptations plus difficiles. Pour nos introductions, .introduction suffit ; nous n’avons pas besoin de p.introduction dans la version finale.

Le mot-clé !important modifie un autre niveau de priorité. Nous ne l’utilisons pas pour masquer un conflit mal compris.

5. Nettoyer et expliquer

Supprimez les deux règles temporaires p et p.introduction. Gardez .introduction avec #374151. Les paragraphes ordinaires doivent retrouver la base héritée depuis body et les notes ne doivent conserver aucune couleur rouge d’essai.

Vous pouvez maintenant diagnostiquer une propriété : quelles règles ciblent l’élément, lesquelles sont directes, quelle spécificité ont-elles, puis quel est leur ordre en cas d’égalité ? Le chapitre suivant utilisera ces bases pour mettre en forme la vraie navigation.

Exemple commenté

Ces règles servent uniquement à l’expérience :

.introduction {
    color: #374151;
}

p {
    color: #7f1d1d;
}

p.introduction {
    color: #163b65;
}



La dernière règle gagne ici par sa spécificité. Déplacée avant les deux autres, elle gagnerait encore dans ce contexte.

Exercice à réaliser

Étape 1

Ajoutez le bloc p rouge après .introduction et vérifiez que les introductions restent grises.

Étape 2

Ajoutez p.introduction bleu. Prédisez le résultat sur le premier paragraphe de chacune des trois pages.

Étape 3

Déplacez temporairement p.introduction avant les autres blocs : sa spécificité reste la même.

Étape 4

Retirez p et p.introduction. Conservez .introduction avec #374151.

Étape 5

Expliquez la différence entre p.introduction et nav a, puis vérifiez que le tableau et les paragraphes n’ont gardé aucun style d’essai.

Correction et résultat attendu

Après l’exercice, conservez seulement la règle déjà prévue pour les introductions :

.introduction {
    color: #374151;
}



Les autres règles antérieures restent dans styles.css. p.introduction exige le type et la classe sur un même élément ; nav a cherche des liens descendants d’un nav. Aucun de ces essais ne change les labels du formulaire ni les niveaux des titres.

À retenir

La spécificité dépend de la composition du sélecteur. Une classe gagne ici face à p ; p.introduction ajoute la précision d’un type. L’espace de nav a exprime une relation de descendance. Les règles d’essai ont été retirées.

Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.

Sommaire du cours

Découvrir CSS et écrire ses premières règles

  1. Comprendre CSS et créer sa première feuille de style
  2. Cibler les éléments avec les sélecteurs CSS
  3. Ajouter plusieurs déclarations dans une règle CSS

Mettre en forme le texte et améliorer sa lisibilité

  1. Améliorer la lisibilité du texte avec les propriétés typographiques
  2. Choisir les couleurs et comprendre le contraste
  3. Construire une typographie cohérente et accessible

Comprendre les espacements et le modèle de boîte CSS

  1. Comprendre les espacements avec margin et padding
  2. Comprendre le modèle de boîte avec les bordures
  3. Maîtriser la largeur du site et de son image

Comprendre l’héritage, la cascade et la priorité des règles CSS

  1. Comprendre les valeurs héritées dans le site
  2. Comprendre la cascade sur les paragraphes d’introduction
  3. Comparer les sélecteurs sans dérégler les introductions

Organiser la disposition des éléments avec Flexbox

  1. Transformer la navigation commune en conteneur Flexbox
  2. Espacer et aligner les liens du menu
  3. Laisser la navigation revenir sur plusieurs lignes

Construire des mises en page avec CSS Grid

  1. Disposer les deux notes de progression avec CSS Grid
  2. Adapter les colonnes des notes sans minimum rigide
  3. Intégrer Grid et Flexbox sans modifier le reste du site

Adapter le petit site aux différentes tailles d’écran

  1. Écrire une première media query pour la navigation
  2. Partir de la petite largeur avec min-width
  3. Vérifier le reflow du tableau, de l’image et du formulaire

Finaliser les trois pages et vérifier leur accessibilité

  1. Rendre les liens et le focus faciles à repérer
  2. Finaliser le formulaire et ranger la feuille CSS
  3. Vérifier et terminer le site HTML et CSS

Adapter le petit site aux différentes tailles d’écran

  1. Découvrir les media queries et adapter la mise en page
  2. Finaliser l’adaptation du site et conclure le cours CSS