【问题标题】:CSS to select top level of a ulCSS 选择 ul 的顶层
【发布时间】:2013-03-20 06:17:14
【问题描述】:

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

li 选择所有 li 元素

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

谢谢!

【问题讨论】:

标签: css css-selectors


【解决方案1】:

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

获得顶层最简单的方法是给最外面的ul一个class或id,然后这样做:

.ulClassNameOrID > li {}

但是,以下内容也可以满足您的需求 (see fiddle),因为它没有选择任何 ul,它是前一个 li 的直接子代(因此不是外部列表的子列表):

:not(li) > ul > li {}

【讨论】:

  • 他要选择第一级元素,而不是最顶层。
  • @Michael:我理解“第一级”是初始ul 元素下的列表元素,并且没有更深,这将是“最顶层”。如果这是不正确的,那么我需要 OP 来澄清这个问题。
  • @Michael:除此之外,问题的标题提到了“顶级”,而问题本身则说明了“第一级”,所以我认为我已经正确解释了 OP。
  • @ScottS 我的评论早在您编辑之前就已经发布了;)。你确实有。
  • @Michael:我的编辑并没有改变我答案的本质,它只是提供了第二个(更通用,没有类或 id)解决方案。但我很高兴我们就我们认为 OP 的要求达成了共识(尽管他自己没有发表声明)。
猜你喜欢
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
相关资源
最近更新 更多