Le sélecteur :has()
en CSS permet de sélectionner un élément en fonction de ses descendants directs.
Cela signifie que vous pouvez sélectionner un élément uniquement s’il contient un certain type d’élément descendant.
Exemple 1 :
Pour sélectionner une section
uniquement si elle contient une liste non ordonnée (ul
) comme descendant direct.
<section class="conteneur">
<h1>Titre</h1>
<p>Ceci est un paragraphe.</p>
<ul>
<li> élément de liste 1 </li>
<li> élément de liste 2 </li>
</ul>
</section>
.conteneur:has(ul) {
background-color: crimson;
}
Exemple 2 :
Pour sélectionner un élément en fonction du contenu textuel de ses descendants directs.
<article class="article">
<h2>Titre de mon article</h2>
<p>Le contenu de l'article.</p>
</article>
.article:has(p:contains("article")) {
border: 1px solid #ccc;
}