In a stylesheet, I have this:
body {
color: white !important;
}
Notice how it doesn\'t work on the text on the right side of this page:>
This has nothing to do with CSS specificity or !important
. You have a rule in main.css that says:
#legend .label {
color: black;
}
The selector is targeting the .label
elements directly and giving them a color, which prevents them from inheriting the color from the body or some other ancestor. An !important
property applies only to the element that is targeted; it does not force other elements to inherit that property. In other words, a specified rule always takes precedence over an inherited rule, even if that inherited rule is !important
.
See the spec:
User agents must first assign a specified value to each property based on the following mechanisms (in order of precedence):
- If the cascade results in a value, use it.
- Otherwise, if the property is inherited and the element is not the root of the document tree, use the computed value of the parent element.
- Otherwise use the property's initial value. The initial value of each property is indicated in the property's definition.
— http://www.w3.org/TR/CSS21/cascade.html#specified-value