← Retour au sommaire
1.1

Sélecteurs CSS

Ciblage précis des éléments HTML

⏱ 10 min
Q1Sélectionnez tous les liens dans la navigation
SOLUTION CSS
.main-nav a { /* sélecteur descendant — tous les <a> dans .main-nav */ color: #333; }
Q2Sélectionnez uniquement le lien actif
SOLUTION CSS
.main-nav a.active { /* <a> ayant la classe active dans .main-nav */ font-weight: bold; color: #007bff; }
Q3Sélectionnez l'article qui a la classe featured
SOLUTION CSS
article.post.featured { /* <article> avec DEUX classes : post ET featured */ border: 2px solid gold; background: #fffbea; }
À noter : Chaîner les classes sans espace (.post.featured) signifie que l'élément doit posséder les deux classes simultanément. Avec un espace (.post .featured), on ciblerait un descendant.
Q4Premier paragraphe de chaque article
SOLUTION CSS
article.post p:first-of-type { /* premier <p> de chaque article */ font-size: 1.05em; color: #444; }
Q5Les éléments <li> pairs
SOLUTION CSS
li:nth-child(even) { /* 2e, 4e, 6e... enfants */ background: #f5f5f5; } /* Équivalent : */ li:nth-child(2n) { background: #f5f5f5; }
1.2

Spécificité

Calcul de la cascade CSS

⏱ 10 min
Q6Classez par spécificité croissante : p, .text, #main, p.text, #main .text p
TABLEAU DE SPÉCIFICITÉ
OrdreSélecteurIDsClassesÉlémentsScore
1p001(0,0,0,1)
2.text010(0,0,1,0)
3p.text011(0,0,1,1)
4#main100(0,1,0,0)
5#main .text p111(0,1,1,1)
Ordre croissant : p.textp.text#main#main .text p
Q7Même spécificité : quelle règle gagne ?
RÉPONSE

Lorsque deux règles ont la même spécificité, c'est la règle déclarée en dernier dans le CSS qui l'emporte (principe de la cascade : ordre d'apparition).

Q8Pourquoi éviter !important ?
RÉPONSE
  • Brise la cascade : court-circuite l'algorithme de spécificité.
  • Maintenance difficile : pour surcharger un !important, il faut en écrire un autre → spirale infernale.
  • Débogage complexe : difficile de tracer la source réelle de la valeur.
  • Alternative saine : augmenter la spécificité du sélecteur ou restructurer les règles.