CSS pour sélectionner le niveau supérieur d'une ul
li > ul > li
sélectionne tous les li
éléments qui sont plus profondes que le premier niveau d'un ul
.
li
sélectionne tous les li éléments
li:not(li > ul > li)
devez sélectionner tous les li
éléments qui ne sont plus profond que le premier niveau d'un ul
, --c'est seulement les premiers éléments de niveau-mais ce n'est pas le cas. Pourquoi?
Merci!
:not
accepte uniquement simple sélecteurs.J'ai ajouté un lien vers le spec...
Selon la spécification,
:nth-child
est un pseudo-classe et, par conséquent, devrait être un simple sélecteur.Jetez un oeil à [cette question][1]. Voir si ça aide. [1]: stackoverflow.com/questions/977883/...
nth-child est une pseudo-classe, donc un simple sélecteur. w3.org/wiki/CSS/Selectors/pseudo-classes/:nth-child
OriginalL'auteur Matthew James Davis | 2013-03-29
Vous devez vous connecter pour publier un commentaire.
La raison
li:not(li > ul > li)
ne fonctionne pas parce que leli > ul > li
n'est pas un simple sélecteur (comme Felix Kling noté dans les commentaires à votre question).La façon la plus simple pour obtenir le niveau supérieur est de donner une classe ou un id à l'extérieur la plupart des
ul
puis faire:Cependant, la suivante est ce que vous désirez aussi ( voir tripoter ), car il ne sélectionnez pas tous les
ul
qui est un enfant direct d'un précédentli
(donc n'est pas une sous-liste de la liste externe):Pouvez-vous montrer ce travail dans un jsfiddle?
J'ai déjà fourni un violon.
Je comprends "de premier niveau" à la liste des éléments qui sont sous le premier
ul
élément et pas plus loin, ce qui serait le "plus haut niveau". Si c'est incorrect, alors j'ai besoin de l'OP, pour clarifier la question.Et à côté de ça, le titre de la question parle de "haut niveau", alors que la question elle-même "premier niveau", donc je pense que j'ai interprété l'OP correctement.
OriginalL'auteur ScottS