CSS:仅为包含在ul元素内的li元素设置样式

3

我有一个无序列表(ul),其中包含一些列表项(li)。其中一个列表项内部有另一个无序列表(ul)。现在,我想将所有这些li设置为相同的样式表,除了具有另一个无序列表的li。

<ul>
    <li>Element</li>
    <li>Another Element</li>
    <li>Special Element
        <ul>
            <li>Child</li>
            <li>Child</li>
        </ul>
    </li>
</ul>

我该如何设置CSS,而不为特殊的li元素设置特定的类?
3个回答

4

我认为你误读了问题,他只想选择不包含另一个无序列表的li项。这将仅选择第二个无序列表中的li项。 - Tim

2

在当前的CSS规范中,这是不可能的。没有选择器可以选择“包含某些特定内容的元素”。在CSS4中可能会有这个功能,但目前你需要采取特殊措施来单独选择“特殊”的li元素。

<ul>
    <li>Element</li>
    <li>Another Element</li>
    <li class="specialelement">Special Element
        <ul>
            <li>Child</li>
            <li>Child</li>
        </ul>
    </li>
</ul>

并给.specialelement类设置自己的样式。


我原本认为这是我问题的唯一解决方案,目前来说是这样。 CSS规则现在会更加智能!太棒了。感谢你们所有人的答复。 - KLODEnet

0

尝试使用

ul li > li {
   some style
}

1
你试过这个吗?它不起作用,因为它假设lili的直接子元素,这是不可能的(ul在中间)。但即使它能工作,它仍然不是问题的答案。再次阅读问题。 - Mr Lister

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接