CSS选择ul的顶级

Mat*_*vis 13 css css-selectors

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

li 选择所有li元素

li:not(li > ul > li)应该选择所有li不比a的第一级更深的ul元素 - 也就是说,只选择第一级元素 - 但它不会.为什么?

谢谢!

Sco*_*ttS 9

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

获得最高级别的最简单方法是给最外层的类或id ul,然后执行:

.ulClassNameOrID > li {}
Run Code Online (Sandbox Code Playgroud)

但是,以下内容也会得到您想要的内容(请参阅小提琴),因为它不会选择任何ul前一个直接子项li(因此不是外部列表的子列表):

:not(li) > ul > li {}
Run Code Online (Sandbox Code Playgroud)

  • @JonHarding:我已经提供了一个小提琴. (2认同)
  • @Michael:除此之外,问题的标题提到"顶级",而问题本身则表示"第一级",所以我认为我已正确解释了OP. (2认同)