Combinateurs CSS
Vous savez déjà cibler des éléments avec des sélecteurs de type, de class et d'id. La compétence suivante : styliser un élément parce qu'il se trouve à un certain endroit par rapport à un autre — dans une section, seulement comme enfant direct, ou juste après un titre.
Qu'est-ce qu'un combinateur CSS ?
Un combinateur CSS est un symbole (ou un espace) placé entre deux sélecteurs. Il indique au navigateur comment ces deux parties doivent être liées dans l'arbre HTML. La gauche est la référence ; la droite reçoit les styles.
Quatre combinateurs en un coup d'œil
Apprenez d'abord les symboles, puis pratiquez chacun avec un court exemple.
📊 Combinateurs CSS
| Combinateur | Symbole | Correspond à | Exemple |
|---|---|---|---|
| Descendant | (espace) | Toute correspondance imbriquée dans un ancêtre | article p |
| Enfant | > |
Enfant direct seulement | ul > li |
| Frère adjacent | + |
Frère suivant immédiatement après | h2 + p |
| Frère général | ~ |
Tout frère ultérieur au même niveau | h2 ~ p |
Combinateur descendant (espace)
Un espace entre sélecteurs signifie : « fais correspondre le second sélecteur n'importe où à l'intérieur du premier ». La profondeur n'importe pas — petits-enfants et niveaux plus profonds correspondent aussi.
Descendant — paragraphes dans article
cssarticle p {
color: #334155;
line-height: 1.6;
}
Quand les descendants aident
Utilisez le combinateur descendant pour un aspect partagé dans une zone : tous les paragraphes d'un article, tous les liens d'un nav. Si vous ne voulez que des enfants directs et que les correspondances profondes sont trop larges, passez au combinateur enfant.
Combinateur enfant (>)
Le > ne correspond qu'aux enfants directs. Un élément imbriqué plus profondément ne correspond pas.
Enfant — seuls les éléments de liste directs
css.menu > li {
list-style: none;
padding: 0.5rem 1rem;
}
Espace contre > en une image
Si le HTML est <ul class="menu"><li>One<ul><li>Nested</li></ul></li></ul>, alors .menu > li stylise seulement le li extérieur. Un descendant .menu li stylise l'extérieur et l'imbriqué.
Combinateur frère adjacent (+)
Le + correspond à l'élément qui vient immédiatement après sa référence sœur — même parent, porte voisine, aucun élément entre les deux.
Frère adjacent — premier paragraphe après h2
cssh2 + p {
font-size: 1.125rem;
color: #0f766e;
}
Un motif courant
Beaucoup de mises en page veulent que le premier paragraphe après un titre ait un aspect légèrement différent (texte d'accroche). h2 + p cible ce voisin sans donner une class à chaque paragraphe.
Combinateur frère général (~)
Le ~ correspond à chaque frère ultérieur qui convient au second sélecteur — pas seulement le suivant immédiat. Ils doivent toujours partager le même parent.
Frère général — paragraphes après h2
cssh2 ~ p {
max-width: 40rem;
}
+ contre ~
h2 + p— seulement le paragraphe juste après leh2h2 ~ p— chaquepfrère qui suit ceh2(premier, deuxième, troisième…)
Si undivs'interpose entreh2et unp,h2 + péchoue pour cep, tandis queh2 ~ ppeut encore correspondre à des paragraphes frères ultérieurs.
Choisir un combinateur
- Préférez le descendant pour « tout de ce type dans cette région »
- Préférez l'enfant quand l'imbrication styliserait listes ou widgets non voulus
- Préférez le frère adjacent pour un motif voisin en une étape (titre → premier paragraphe)
- Préférez le frère général quand plusieurs pairs après un marqueur doivent partager un aspect
Gardez les chaînes courtes pendant l'apprentissage. Les longues sont puissantes — et faciles à casser si le HTML change.
Essayez vous-même
- Créez une petite page avec un
<article>contenant un<h2>, un<p>, un<div>avec un autre<p>dedans, puis encore un<p>après lediv. - Ajoutez
article p { color: #334155; }et vérifiez que les deux paragraphes de l'article changent (descendant). - Passez à
article > p { color: #0f766e; }et actualisez — seuls les paragraphes enfants directs gardent cette couleur ; lepimbriqué dans ledivnon. - Ajoutez
h2 + p { font-weight: bold; }et vérifiez que seul le paragraphe immédiatement après le titre devient gras. - Optionnel : essayez
h2 ~ p { max-width: 36rem; }et notez que chaque paragraphe frère après le titre reçoit le max-width.
Erreurs fréquentes
- Utiliser un descendant alors que vous vouliez un enfant — des widgets imbriqués héritent de styles destinés au niveau supérieur
- S'attendre à ce que
h2 + psaute un élément entre le titre et le paragraphe — adjacent signifie immédiat - Lire le combinateur à l'envers — les styles s'appliquent au sélecteur de droite, pas à la référence de gauche
- Mettre une virgule où vous vouliez un combinateur (
h2, pgroupe ; ne signifie pas « p après h2 ») - Supposer que
~exige des voisins collés — le frère général demande seulement « frère ultérieur »
Résumé
- Les combinateurs relient les sélecteurs par relation HTML : à l'intérieur, enfant direct, frère suivant ou frères ultérieurs
- Espace = descendant (toute profondeur) ;
>= enfant direct seulement += frère suivant immédiat ;~= tout frère ultérieur correspondant- Les styles s'appliquent au sélecteur à droite du combinateur
- Choisissez le combinateur le plus serré qui exprime encore votre intention
- Entraînez-vous en remplaçant l'espace par
>et en comparant+et~sur la même page
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut