Tout sur les nouveaux sélecteurs :is() et :where() en CSS

Découvrons ensemble les derniers sélecteurs proposés par CSS : where et is ! Ces sélecteurs vont nous permettre de réduire notre code et de sélectionner nos éléments de manière plus flexible. Comment çafon
•
Mis à jour le 14 août 2026
•
5 min de lecture
Believemy logo
Tout sur les nouveaux sélecteurs :is() et :where() en CSS

Découvrons ensemble les derniers sélecteurs proposés par CSS : :where() et :is() ! Ces sélecteurs vont nous permettre de réduire notre code et de sélectionner nos éléments de manière plus flexible. Comment ça fonctionne ? C'est tout ce que nous allons voir dans cet article.

 

Le problème avec nos sélecteurs

Lorsque nous codons dans les feuilles de style de nos projets, vous êtes sûrement déjà arrivés à ce genre de résultat :

CSS
.main h1,
.main h2,
.main .leading {
    color: pink;
}

.nav li,
.nav p {
    padding: 15px;
}

Ce genre de sélecteurs n'est pas impressionnant, il nous permet de préciser grâce à la virgule plusieurs éléments à sélectionner et sur lesquels nous souhaitons ajouter du style, rien de plus, rien de moins.

Nous utilisons généralement ce genre de code lorsque nous souhaitons factoriser notre code afin de ne pas devoir préciser la couleur pour chaque titre h1, h2 et chaque classe leading à la main, un par un. Le problème reste que nous disposons d'un code très long, sur plusieurs lignes.

Grâce à l'introduction des sélecteurs :is() et :where(), ce genre de sélecteurs passera désormais aux sourvenirs !

 

Le sélecteur :is()

Pensez à chaque moment où vous souhaitez appliquer le même style à plusieurs éléments. Avec :is() nous pouvons maintenant sélectionner tous ces éléments de façon plus courte, rapide et intuitive.

CSS
.main :is(h1, h2, .leading) {
    color: pink;
}

.nav :is(li, p) {
    padding: 15px;
}

Plutôt simple à utiliser ne pensez-vous pas ?

Le sélecteur :is() nous propose de sélectionner plusieurs éléments à cibler sans devoir préciser à chaque fois les éléments parents.

 

Le sélecteur :where()

Le sélecteur :where() pourrait vous... décontenancer. Et pour cause : il fonctionne exactement comme le sélecteur :is() et proposer plus ou moins la même fonction, mais à un détail prêt.

CSS
.main :where(h1, h2, .leading) {
    color: pink;
}

.nav :where(li, p) {
    padding: 15px;
}

Mais attendez ça fonctionne vraiment pareil qu'avec :is() ?

Eh bien oui, rien ne change à part le fait que nous utilisions where plutôt que le mot is. En tout cas, au niveau du code. Car en coulisse... c'est un autre débat !

Le sélecteur :where() nous propose de sélectionner plusieurs éléments à cibler sans devoir préciser à chaque fois les éléments parents et sans donner de la priorité aux propriétés proposées. En d'autres termes un peu plus profonds sans ajouter une spécificité à l'élément ciblé.

 

C'est quoi une spécificité ?

Excellente question !

La spécificité c'est une valeur, qui permet de dire au navigateur quelle propriété utiliser en priorité.

Voici un petit exemple :

HTML
<div id="text-purple" style="color: pink">Hello Believemy</div>
CSS
.text-red {
    color: red;
}

De quelle couleur pensez-vous que le texte sera ? Violet ou rose ? Rose bien évidemment.

Mais donc comment se fait-il que votre navigateur ait choisi la couleur rose plutôt que la couleur rouge ? La réponse est simple : grâce à la spécificité.

En ayant précisé l'attribut style nous avons averti notre navigateur qu'il s'agissait d'une propriété à passer devant toutes les autres qui pourraient - ou ne pourraient pas - exister.

Chaque sélecteur CSS à sa propre spécificité. Ainsi si deux propriétés sont ajoutées au même élément grâce à deux sélecteurs différents, celui qui aura la spécificité la plus grande l'emportera toujours.

Voici la hiérarchie entre chaque type de sélecteur :

  1. Les styles en inline avec l'attribut style (1000 points de spécificité) ;
  2. Un ID (#id) (100 points) ;
  3. Une classe (.classe), un attribut (input[attribut]) ou aussi une pseudo-classe (input:hover) (10 points de spécificité) ;
  4. Un élément (input), pseudo-élément (input::before) (1 point de spécificité).

Ces points de spécificité peuvent s'additionner les uns aux autres.

Ainsi nous aurons :

  • 2 points de spécificité pour ul li { ... }
  • 14 points de spécificité pour div ul ol li.text-red { ... } (quatre élément + une classe : 4 + 10)

Sans oublier le !important qui vaut 10 000 points de spécificté (et qui permet de "forcer" l'utilisation d'une certaine propriété, d'où l'intérêt du mot "important".

Si nous reprenons l'exemple ci-dessus, pour avoir un texte en rouge plutôt qu'en rose nous allons devoir préciser !important :

CSS
.text-red {
    color: red!important;
}

 

Conclusion

Les deux nouveaux sélecteurs :is() et :where() sont très intéressants puisqu'ils permettent de mieux cibler les éléments et d'avoir un code plus facile à comprendre et à lire.

La seule est unique différence entre ces deux sélecteurs, vient du fait que le sélecteur :where() n'ajoute aucune spécificité et donc aucun point de spécificité aux éléments ciblés, alors que :is() utilise la spécificité du sélecteur le plus spécifique (si vous ciblez des classes, il renverra une spécificité de 10 alors que si vous ciblez des classes et des id, il aura une spécificité de 100).

Dorénavant, vous pouvez dire que vous savez tout sur :is() et :where(). Si vous souhaitez en savoir plus sur le HTML et le CSS, nous avons une formation complète dédiée à ces deux langages de programmation. N'hésitez pas non plus à partager cet article à votre entourage sur vos réseaux-sociaux. Merci !

Catégorie : Développeurs

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.

Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

À lire ensuite

Le sélecteur out-of-range (pour styliser quand une valeur n'est pas correcte)

Vous avez toujours voulu vérifier dynamiquement les valeurs entrées par vos utilisateurs dans un champ de formulaire sans utiliser JavaScript ? Voici comment modifier le style d'un champ quand un nombre entré par l'utilisateur est invalide !

10 octobre 2021

Le guide complet sur les barres de soulignement (CSS)

Tout tout tout... Vous saurez tout sur les barres de soulignement ! Bon, d'accord, vous avez reconnu la musique au moins ? En tout cas, les barres de soulignement ne se limitent pas à souligner nos textes de temps en temps, il s'agit d'un véritable outil de stylisation nous permettant d'ajouter des barres au-dessous, mais aussi au-dessus, sous forme de vague, de pointillés, de tirets... Vous l'aurez compris, nous allons voir tout ceci dans cet article.

10 novembre 2021

Faire de la coloration syntaxique avec HTML et CSS

Si vous avez un blog ou un portfolio sur lequel vous souhaitez présenter des codes, que ce soit des extraits de code HTML / JavaScript ou encore CSS, vous avez très certainement dû vous confronter à un problème : comment activer la coloration syntaxique pour faire comme si nous avions mis le code dans un éditeur de code ? Voyons dans cet article comment faire ensemble.

26 novembre 2020

Comment utiliser les variables CSS pour tout dynamiser ?

Vous avez peut-être déjà vécu ce moment où vous souhaitiez changer la couleur principale d'un de vos projets ? Ou peut-être avez-vous déjà vécu ces moments où vous reveniez en arrière pour récupérer les couleurs du thème de votre site ? Tout ceci est long, et très peu pratique. Grâce aux variables CSS, ce sera un vieux souvenir ! Découvrons comment nous allons faire.

12 octobre 2021

Relier le CSS au HTML : 3 méthodes expliquées simplement

Découvrez les 3 méthodes pour relier le CSS au HTML : feuille externe, style interne et inline. Exemples de code, bonnes pratiques et erreurs à éviter.

22 mars 2026

CSS Flexbox - Apprendre les bases 2/2

Alors ça y est ! Vous êtes convaincu de l'utilité de flexbox ? Si oui, alors revenez, car je n'en ai pas fini avec vous 🙂 ! Cette fois-ci, nous attaquons les propriétés flex-direction et flex-wrap.

11 juillet 2022

Le guide complet sur Flexbox CSS

Vous êtes en train d'apprendre à utiliser Flexbox ? Vous cherchez comment utiliser Flexbox avec le CSS ? Vous ne savez pas comment fonctionne Flexbox ? Bienvenue sur le guide complet sur Flexbox CSS !

2 avril 2024

Détecter la préférence (SOMBRE | CLAIR) de l’ordinateur d'un utilisateur

Proposer une version sombre de son site internet devient petit à petit une norme que les sites se doivent de s'imposer pour le bien de leurs utilisateurs. Voyons dans cet article comment créer un thème sombre et comment faire pour détecter les préférences de notre visiteur.

24 novembre 2020

Devenez le solopreneur que vous rêvez d'être.

Premier projet, reconversion, lancement de business : accédez à nos formations, pratiquez sur des cas concrets et avancez avec un accompagnement clair.