13

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

li选择所有 li 元素

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

谢谢!

4

1 回答 1

10

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

获得顶层的最简单方法是给最外层一个类或 id ul,然后执行以下操作:

.ulClassNameOrID > li {}

但是,以下内容也可以满足您的要求(请参见小提琴),因为它不会选择任何ul前一个的直接子级li(因此不是外部列表的子列表):

:not(li) > ul > li {}
于 2013-03-29T14:26:00.597 回答