高阶li的CSS选择器

时间:2014-10-30 04:47:06

标签: html css

正如您所看到的,我很难在标题中表达问题。

我有一个ul,其中包含liul,其中包含lili

我希望第一个ul元素,而不是第二个li中的元素。

如果您查看this fiddle(或下面的代码),我想更改第1项的颜色,而不是第1项的子项目。如果没有将类附加到<div class="foo"> <ul> <li> item 1 <ul> <li>sub item 1</li> </ul> </li> </ul> </div> 元素,这是否可能?

{{1}}

4 个答案:

答案 0 :(得分:1)

会有这样的帮助吗?

.foo ul li {
    color: red;
}
.foo ul li ul li {
    color:green;
}

答案 1 :(得分:1)

演示 - http://jsfiddle.net/victor_007/6fqbc4ud/6/

:not(li) > ul > li  {
    color: red;
}

ul li{
    color:green;
}

答案 2 :(得分:0)

.foo  ul li { color: black; }
.foo  > ul > li { color: red; }

Demo

答案 3 :(得分:0)

为此,请使用child combinators selector,它仅选择直接孩子。

乍一看,您可以使用ul>li,但这也会选择第二级列表项,因为它们也是列表的直接子项。

所以你需要定义一个起点,在这种情况下是父(div)。

我现在看到你自己已经有了答案。然而,由于你没有宣布默认情况,因此它并不适用于你的小提琴。颜色。这意味着第二级列表项继承了它的父级颜色。

li {
    color: blue;
}
.foo>ul>li {
    color: red;
}

updated Fiddle