Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Combinateur de voisins directs

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Le combinateur de voisin direct (+) sépare deux sélecteurs et ne fait correspondre le second élément que s'il suit immédiatement le premier élément, et si les deux sont des enfants du même element parent.

css
/* Ne cible que les paragraphes situés directement après une image */
img + p {
  font-style: bold;
}

Syntaxe

css
/* L'espace blanc autour du combinateur + est facultatif mais recommandé. */
former_element + target_element {
  /* propriétés de style */
}

Exemples

Utilisation simple

Cet exemple montre comment sélectionner le voisin direct suivant si ce voisin direct est d'un type spécifique.

CSS

Nous appliquons uniquement la mise en forme au <li> qui vient immédiatement après un <li> qui est le premier de son type :

css
li:first-of-type + li {
  color: red;
  font-weight: bold;
}

HTML

html
<ul>
  <li>Un</li>
  <li>Deux&nbsp;!</li>
  <li>Trois</li>
</ul>

Résultat

Sélectionner le voisin précédent

Le combinateur de voisin direct peut être inclus dans le sélecteur fonctionnel :has() pour sélectionner le voisin précédent.

CSS

Nous appliquons uniquement la mise en forme au <li> qui possède un voisin direct suivant qui est un <li> et qui est le dernier de son type :

css
li:has(+ li:last-of-type) {
  color: red;
  font-weight: bold;
}

HTML

html
<ul>
  <li>Un</li>
  <li>Deux</li>
  <li>Trois&nbsp;!</li>
  <li>Quatre</li>
</ul>

Résultat

Spécifications

Specification
Selectors Level 4
# adjacent-sibling-combinators

Compatibilité des navigateurs

Voir aussi