我正在尝试将样式应用于所有 li 项目,只要该项目不在具有.k-widget类别的容器中的任何位置
.c-w1 ol li :not(.k-widget) { list-style: decimal outside; }
然而,风格继续被应用。 .k-widget 位于包含div的div上,其中包含我不想要设置样式的实际 li 。
<div class="k-widget">
<Lots of Things>
<li> ....
答案 0 :(得分:3)
应该是这样的:
div:not(.k-widget) .c-w1 ol li {
list-style: decimal outside;
}
当然:not()
必须应用于li as allready stated by Marijke Luttekes之前的div。
另请查看caniuse for browser support of css3 selectors。
另一种可能性是告诉.k-widget
内容使用list-style: inherit;
继承其样式。因此,您可以在不使用特定值的情况下覆盖它并为样式添加冗余:
div .c-w1 ol li {
list-style: decimal outside;
}
div.k-widget .c-w1 ol li {
list-style: inherit;
}
答案 1 :(得分:1)
目前,列表样式适用于li
内未应用类.k-widget
的任何项目。如果我正确理解您的问题,您可以通过在:not(.k-widget)
之前放置li
语句来轻松解决此问题。
答案 2 :(得分:1)
问题是父母的:not()
选择器会匹配任何父匹配,并且因为所有li
元素都在body
和html
内,所有{ {1}}元素将匹配。
我建议构建两种样式,一种覆盖另一种样式。
li
和
.c-w1 ol li { list-style: decimal outside; }