在样式表中,我有:
body {
color: white !important;
}
请注意它对本页右侧的文字无效:
https://www.graf.ly/graph_templates/56/
您可以检查文本,看到该样式已应用,但随后被覆盖。这怎么可能?
我认为!重要的是忽略CSS特异性,并作为指令始终使用该样式。我以前从未见过这种行为。
注意:
不要被图形轴的白色文本所迷惑,这是一个text
svg元素,并用fill: white !important
着色。
另外,我很清楚正确使用!important。所以请不要评论或回答说“你永远不应该使用!重要”。这不是问题:)
答案 0 :(得分:21)
这与CSS特异性或!important
无关。你在main.css中有一条规则说:
#legend .label {
color: black;
}
选择器直接定位.label
元素并为它们提供颜色,这可以防止它们继承主体或其他祖先的颜色。 !important
属性仅适用于目标元素;它不会强制其他元素继承该属性。换句话说,指定的规则始终优先于继承的规则,即使该继承的规则是!important
。
参见规范:
用户代理必须首先根据以下机制(按优先顺序)为每个属性分配指定值:
- 如果级联产生值,请使用它。
- 否则,如果继承该属性并且该元素不是文档树的根,请使用父元素的计算值。
- 否则使用属性的初始值。每个属性的初始值都在属性的定义中指出。
醇>
答案 1 :(得分:4)
您有一个更具体的规则,它优先于main.css中的第94行:
#legend .label {
color: black;
}
将其更改为white
,您就可以了。
关于重要的,它将优先于body
的其他引用,但不优先于#legend标签,它是更具体和适用的选择器。这是一篇关于CSS特异性的文章:http://css-tricks.com/specifics-on-css-specificity/