CSS选择ul的顶级

CSS选择ul的顶级,css,css-selectors,Css,Css Selectors,li>ul>li选择比ul的第一级更深的所有li元素 li选择所有li元素 li:not(li>ul>li)应选择所有li元素,这些元素的深度不超过ul的第一级元素,也就是说,只有第一级元素,但它没有。为什么? 谢谢 原因li:not(li>ul>li)不起作用是因为li>ul>li不是一个简单的选择器(正如Felix Kling在对您的问题的评论中所指出的) 获取顶级的最简单方法是为最外层的ul提供一个类或id,然后执行以下操作: .ulClassNameOrID > li {} 但是

li>ul>li
选择比
ul
的第一级更深的所有
li
元素

li
选择所有li元素

li:not(li>ul>li)
应选择所有
li
元素,这些元素的深度不超过
ul
的第一级元素,也就是说,只有第一级元素,但它没有。为什么?

谢谢

原因
li:not(li>ul>li)
不起作用是因为
li>ul>li
不是一个简单的选择器(正如Felix Kling在对您的问题的评论中所指出的)

获取顶级的最简单方法是为最外层的
ul
提供一个类或id,然后执行以下操作:

.ulClassNameOrID > li {}
但是,以下内容也可以满足您的要求(),因为它没有选择任何是前一个
li
的直接子项的
ul
(因此不是外部列表的子列表):


:not
仅接受。@Lotuse:我添加了一个到规范的链接。@Lotus:根据规范,
:nth child
是一个伪类,因此应该是一个简单的选择器。请看[这个问题][1]。看看是否有帮助。[1] :@lotusnth-child是一个伪类,因此是一个简单的选择器。他希望选择第一级元素,而不是最顶层。@Michael:我理解“第一级”是指在初始
ul
元素下的列表元素,没有更深的元素,这将是“最顶层”。如果这是不正确的,那么我需要OP来澄清这个问题。@Michael:除此之外,问题的标题提到了“顶级”,而问题本身说的是“第一级”,所以我认为我对OP的解释是正确的。@ScottS我的评论早在你编辑之前就已经有了;)。迈克尔:我的编辑并没有改变我答案的本质,它只是提供了第二个(更一般的,没有类或id)解决方案。但我很高兴我们已经就我们认为OP的要求达成了共识(尽管他自己没有发表声明)。
:not(li) > ul > li {}