La pseudo-classe CSS3 :not() permet la négation dans les sélecteurs, excluant les éléments qui correspondent à un modèle spécifié. Cependant, sa fonctionnalité présente des limites.
Implémentation actuelle
Comme décrit dans la documentation CSS3 et CSS Selectors Level 4, :not() ne correspond actuellement qu'aux descendants directs. . Dans l'exemple fourni :
div :not(p) { color: red; }
Ce sélecteur cible les enfants directs de
. Les éléments qui sont des descendants plus éloignés, même s'ils sont contenus dans un
imbriqué dans
Héritage et style
L'héritage des propriétés de style peut compliquer davantage le comportement de :not(). Dans l'exemple de la question, le
élément dans l'élément
hérite de la couleur de texte rouge de son parent, même si lelui-même correspond au sélecteur :not(). En effet, la négation est appliquée à l'élément parent,
, qui répond aux critères spécifiés.Améliorations futures
Les sélecteurs CSS niveau 4 proposent d'étendre : not() pour inclure des sélecteurs et combinateurs complexes complets. Cela permettrait un filtrage plus granulaire, activant des sélecteurs tels que :
p:not(div p) { color: red; }Copier après la connexionRecommandations
En raison des limitations actuelles de :not() et de la confusion potentielle avec l'héritage , il est généralement conseillé d'éviter de l'utiliser pour filtrer les descendants distants. Envisagez des approches alternatives telles que l'utilisation de sélecteurs directs ou l'application d'un style spécifique aux éléments que vous souhaitez exclure. Une fois la prise en charge des sélecteurs complexes dans :not() implémentée, cette fonctionnalité pourrait devenir plus utile.
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!