Comment cibler sélectivement des éléments en fonction de l'état d'un autre élément avec CSS ?
En CSS, cibler des éléments en fonction de l'état d'un autre L'élément peut être difficile en raison des limitations de la syntaxe actuelle du sélecteur. Pour bien comprendre la situation, nous explorerons trois conditions critiques affectant cette capacité.
Conditions de sélection des éléments en fonction de l'état :
Limitations du courant Sélecteurs :
La principale limitation réside dans l'absence de sélecteur de parent ou de frère ou sœur précédent. Cette déficience rend impossible l'établissement de relations telles que :
Solution potentielle avec les sélecteurs 4 et :has() Pseudo-classe :
Bien que la norme actuelle des sélecteurs ne résolve pas ce problème, les avancées à venir dans Selectors 4, introduisez la pseudo-classe :has(), qui a le potentiel d'atténuer ces limitations. :has() permet au sélecteur de rechercher des éléments descendants spécifiques dans l'élément parent auquel il est appliqué.
Par exemple :
section:has(> div[data-status~=finished]) + section > div:matches(.blink, .spin)
Ce sélecteur identifie tous les éléments div dans une section suivante qui ont soit les classes ".blink" soit ".spin", à condition que la section précédente contienne un div avec l'attribut "finished".
Remarque : Le :matches() la pseudo-classe est actuellement en cours de développement et n'est pas encore prise en charge par tous les navigateurs.
Comme solution temporaire, vous pouvez implémenter manuellement cette logique en Javascript en utilisant des fonctions comme Document.querySelector() pour sélectionner les éléments répondant aux conditions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!