We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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.

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().

/* 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)');

Syntaxe

:has(liste_selecteurs) { 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)

Le sélecteur qui suit correspond aux éléments <h1> s'ils possèdent un élément <p> comme fils direct :

h1:has(+ p)

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éChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Non Non Non1 Non Non Non
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Non Non Non Non1 Non Non Non

1. See bug 418039

Étiquettes et contributeurs liés au document

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