我有使用内联样式的标记,但我没有权限更改此标记.如何仅使用CSS覆盖文档中的内联样式?我不想使用jQuery或JavaScript.
HTML:
<div style="font-size: 18px; color: red;">
Hello World, How Can I Change The Color To Blue?
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div {
color: blue;
/* This Isn't Working */
}
Run Code Online (Sandbox Code Playgroud)
Roh*_*wal 157
要仅覆盖内联样式,请使用!important
CSS规则旁边的关键字.以下是它的一个例子.
div {
color: blue !important;
/* Adding !important will give this rule more precedence over inline style */
}
Run Code Online (Sandbox Code Playgroud)
<div style="font-size: 18px; color: red;">
Hello, World. How can I change this to blue?
</div>
Run Code Online (Sandbox Code Playgroud)
重要笔记:
使用
!important
不被视为一种良好的做法.因此,您应该避免使用!important
内联样式.将
!important
关键字添加到任何CSS规则允许规则强制优先于该元素的所有其他CSS规则.它甚至覆盖了标记的内联样式.
覆盖的唯一方法是使用另一个
!important
规则,在CSS中声明具有更高的CSS特性,或者稍后在代码中声明相同的CSS特性.必读 - MDN的CSS特异性
Mr.*_*ien 25
inline-styles
在文档中具有最高优先级,例如,如果您想要将div
元素的颜色更改为blue
,但是您inline style
的color
属性设置为red
<div style="font-size: 18px; color: red;">
Hello World, How Can I Change The Color To Blue?
</div>
Run Code Online (Sandbox Code Playgroud)
div {
color: blue;
/* This Won't Work, As Inline Styles Have Color Red And As
Inline Styles Have Highest Priority, We Cannot Over Ride
The Color Using An Element Selector */
}
Run Code Online (Sandbox Code Playgroud)
那么,我应该使用jQuery/Javascript吗?- 答案是否定的
我们可以使用element-attr
CSS Selector !important
,注意,!important
这里很重要,否则它不会超过内联样式.
<div style="font-size: 30px; color: red;">
This is a test to see whether the inline styles can be over ridden with CSS?
</div>
Run Code Online (Sandbox Code Playgroud)
div[style] {
font-size: 12px !important;
color: blue !important;
}
Run Code Online (Sandbox Code Playgroud)
注意:使用
!important
ONLY会在这里工作,但我已经使用了div[style]
selector来专门选择div
具有style
属性
IE *_* it 11
除内联样式外,您可以轻松覆盖内联!important
样式
所以
<div style="font-size: 18px; color: red;">
Hello World, How Can I Change The Color To Blue?
</div>
div {
color: blue !important;
/* This will Work */
}
Run Code Online (Sandbox Code Playgroud)
但如果你有
<div style="font-size: 18px; color: red !important;">
Hello World, How Can I Change The Color To Blue?
</div>
div {
color: blue !important;
/* This Isn't Working */
}
Run Code Online (Sandbox Code Playgroud)
现在它red
只会..而且你无法覆盖它
<div style="background: red;">
The inline styles for this div should make it red.
</div>
div[style] {
background: yellow !important;
}
Run Code Online (Sandbox Code Playgroud)
以下是更多详细信息的链接:http : //css-tricks.com/override-inline-styles-with-css/