仅为父母而不是儿童申请css

时间:2013-05-28 08:20:00

标签: html css

我有一个这样的无序列表:

<div class="list">
<ul>
    <li>
        list1
        <ul>
            <li>Sub list1</li>
            <li>Sub list2</li>
            <li>Sub list3</li>
        </ul>
    </li>
    <li>
        list2
        <ul>
            <li>Sub list1</li>
            <li>Sub list2</li>
            <li>Sub list3</li>
        </ul>
    </li>
</ul>
</div>

我现在只想为第一个列表应用CSS,而不是为其子ulli应用CSS。我尝试过以下方法:

.list ul li{
background:#ccc;
}

...但背景颜色应用于所有列表。应该怎么做才能改变只有父级而不是子级的CSS。

4 个答案:

答案 0 :(得分:34)

使用直接后代运算符>

.list > ul > li { ... }

>运算符仅选择元素作为元素的直接子元素。

但请注意,该列表项中的任何内容当然都具有列表项的背景,尽管没有直接分配给它的任何背景颜色。

答案 1 :(得分:5)

您可以使用&gt;运营商,像这样:

.list > ul > li{
  background:#ccc; 
}

答案 2 :(得分:2)

这样做的唯一方法就是:

.List > ul > li { background-color: #ccc; }

如果您只想将bgcolor应用于ul,请执行以下操作:

.List > ul { background-color: #ccc; }

:)

答案 3 :(得分:0)

或者,您现在可以执行以下操作:

li:not(li li) { background: #ccc; }