MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La pseudo-classe :has() permet de cibler un élément si au moins un des sélecteurs passés en paramètre correspond à l'élément (selon la portée, :scope, de l'élément). Cette pseudo-classe :has() prend en paramètre une liste de sélecteurs.

/* Avec cette ligne de JavaScript, on récupère  */
/* tous les éléments <a> qui ont un fils direct */
/* qui est un élément <img> */
/* Attention, actuellement cette fonction n'est */
/* pas prise en charge par les navigateurs et   */
/* n'est pas conçue pour fonctionner dans les   */
/* feuilles de style */
var test = document.querySelector('a:has(> img)');

Note : Pour des raisons de performances et dans la spécification actuelle, has() n'est pas classé comme un sélecteur dynamique et peut uniquement être utilisé de façon statique (par exemple avec des fonctions comme document.querySelector().

Syntaxe

:has(liste_selecteurs) { style proprietes }

Exemples

Dans l'exemple suivant, le sélecteur permet de cibler uniquement les éléments <a> qui contiennent un fils direct <img> :

a:has(> img)

Spécifications

Spécification État Commentaires
Selectors Level 4
La définition de ':has()' dans cette spécification.
Version de travail Définition initiale.

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Support simple Pas de support Pas de support Pas de support Pas de support Pas de support Pas de support
Fonctionnalité Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support Pas de support Pas de support Pas de support

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,