Sélecteur CSSSélecteurs

A, B

La virgule combine plusieurs sélecteurs en une seule règle, pour leur donner les mêmes styles sans répéter les déclarations.

Sur cette page

Exemple

#
CSS
input,
select,
textarea {
  padding: 8px 10px;
  border: 1px solid #52525b;
  border-radius: 8px;
  background: #18181b;
  color: inherit;
  font: inherit;
}
Aperçu

Définition et utilisation

#

Une liste de sélecteurs permet d’écrire les déclarations une seule fois pour plusieurs sélecteurs. Au lieu de trois règles séparées pour h1, h2 et h3, h1, h2, h3 { … } suffit. Chaque sélecteur de la liste agit de façon indépendante, et un élément qui correspond à n’importe lequel d’entre eux reçoit les styles.

La spécificité se calcule séparément pour chaque sélecteur de la liste. Dans la règle #logo, p, l’élément #logo reçoit le poids (1, 0, 0), et un paragraphe ordinaire seulement (0, 0, 1). La liste n’augmente pas le poids des sélecteurs les plus faibles.

Le piège le plus important : si un seul sélecteur de la liste est invalide ou inconnu du navigateur, toute la règle est ignorée. Une faute de frappe comme a:hovr ou le préfixe d’un autre navigateur peut désactiver les styles de tous les autres sélecteurs. Les listes dans :is() et :where() font exception : elles ignorent simplement les entrées invalides.

Écrivez les longues listes avec un seul sélecteur par ligne, avec une virgule à la fin de chaque ligne sauf la dernière. Une virgule après le dernier sélecteur est une erreur qui invalide toute la règle.

Syntaxe

#
Syntaxe
A, B, C { propriété: valeur; }

Exemples de listes

#
  • h3, p

    Le titre et les deux paragraphes reçoivent le même style à partir d’une seule règle.
  • .note, button, a

    Une liste peut mélanger des sélecteurs de natures différentes : une classe à côté de noms de balises.
  • p, p:hovr

    Une faute de frappe dans le second sélecteur invalide toute la règle. Même les paragraphes ordinaires restent gris.
  • :is(p, p:hovr)

    La même liste dans :is() est tolérante : le sélecteur invalide est ignoré, et les paragraphes reçoivent le style.

Exemples de listes en pratique

#

h3, p

Le titre et les deux paragraphes reçoivent le même style à partir d’une seule règle.
h3, p { background: #7c3aed; color: #fff; }

.note, button, a

Une liste peut mélanger des sélecteurs de natures différentes : une classe à côté de noms de balises.
.note, button, a { background: #7c3aed; color: #fff; }

p, p:hovr

Une faute de frappe dans le second sélecteur invalide toute la règle. Même les paragraphes ordinaires restent gris.
p, p:hovr { background: #7c3aed; color: #fff; }

:is(p, p:hovr)

La même liste dans :is() est tolérante : le sélecteur invalide est ignoré, et les paragraphes reçoivent le style.
:is(p, p:hovr) { background: #7c3aed; color: #fff; }

Plus d’exemples

#
Le même effet pour la souris et le clavier
CSS
.link:hover,
.link:focus-visible {
  color: #fff;
  text-decoration-thickness: 2px;
}
Aperçu

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Placez chaque sélecteur sur sa propre ligne. Il est alors plus facile de repérer une faute de frappe qui désactiverait toute la règle.
  • Écrivez les sélecteurs avec des préfixes de navigateur, par exemple ::-webkit-… et ::-moz-…, dans des règles séparées. Un navigateur qui ne reconnaît pas l’un d’eux rejettera toute la liste.
  • Vous raccourcirez une longue liste au début répétitif avec :is() : .card :is(h2, h3, h4) au lieu de trois sélecteurs complets.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.