我想只要该产品未在任何地方一个容器类.K-widget的CSS不是选择为所有儿童
.c-w1 ol li :not(.k-widget) { list-style: decimal outside; }
但是风格适用于所有李项目风格继续应用。 .k-widget位于包含div的div上,该div包含实际的li我不想要样式。
<div class="k-widget">
<Lots of Things>
<li> ....
我想只要该产品未在任何地方一个容器类.K-widget的CSS不是选择为所有儿童
.c-w1 ol li :not(.k-widget) { list-style: decimal outside; }
但是风格适用于所有李项目风格继续应用。 .k-widget位于包含div的div上,该div包含实际的li我不想要样式。
<div class="k-widget">
<Lots of Things>
<li> ....
应该是这样的:
div:not(.k-widget) .c-w1 ol li {
list-style: decimal outside;
}
当然:not()
有哪个是李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;
}
目前列表样式应用到任何项目一li
应用类.k-widget
不具有内。如果我正确理解您的问题,您可以通过在li
之前放置:not(.k-widget)
声明来轻松解决此问题。
的问题是,如果任何父匹配:not()
选择器上的父将匹配,并且由于所有li
元件都是body
html
和,之内的所有li
元件将匹配。
我会建议构建两种风格,一种覆盖另一种。
.c-w1 ol li { list-style: decimal outside; }
而且
.c-w1 .k-widget ol li { override style here }
个人我不重写样式,除非完全必要的大风扇(因为它可能只是意味着你已经错结构化你的代码) 。我喜欢':not()'方法。虽然这个答案没有错。 –