【发布时间】:2023-03-12 13:23:01
【问题描述】:
如何仅设置此示例列表中顶级 li 的样式?
<ul class='upper'>
<li class="first">dog</li>
<li>cat</li>
<li>bird</li>
<li>mouse</li>
<li>
<ul class="lower">
<li>chow</li>
<li>nibz</li>
<li>seed</li>
<li>cheese</li>
</ul>
</li>
ul.upper > li {
color:red;
}
这是我理解的所有 li 的样式,因为递归 UL 在第一级列表项内。有没有一种简单的方法来设置顶级 li 的样式?也许以某种方式使用“:not”?
编辑:我意识到您可以使用 color:initial 或通过添加另一种颜色(和其他方式)覆盖它下面的样式,但我想知道是否有一种方法可以只选择顶级 li,所以另一种样式不是需要。
【问题讨论】:
-
只需在该规则后面添加
li{ color:initial; } -
:not()绝对不会帮助你,因为它只需要没有组合器的简单选择器。 -
解决您的编辑:不,因为您的 .lower li 也是您的 .upper li。大多数样式都是继承的。您为父级着色,因此默认情况下子级将被着色。
-
@Judd Cobler @你的最后一次编辑。实际上需要继承。想象一下,如果您将
font-size设置为您的身体,或者font-family,并且style没有被继承,那么您必须为each element手动定义它,color和其他inheritable props也是同样的故事
标签: css css-selectors