69

如果你有

<div style="display: none !important;"></div>

有没有办法在样式表中覆盖它以使其显示?

最好使用类似的东西:

div { display: block !important; }
4

7 回答 7

84

让我首先说通常可以覆盖内联样式

.override {color:red !important;}
<p style="color:blue;">I will be blue</p>
<p style="color:blue;" class="override">But I will be red</p>

此行为在 W3 规范中进行了描述,其中!important声明声明不会改变特异性,而是优先于“正常”声明。

话虽如此,当冲突规则都具有!important标志时,特异性决定应用内联规则 - 这意味着对于 OP 的场景,没有办法覆盖内联 !important规则。

于 2012-06-22T07:24:45.337 回答
27

如果内联 CSS 具有!important. 它的优先级高于外部 CSS 文件中的样式。

但是,如果您希望它稍后更改某些操作,您可以使用一点 JavaScript。

于 2012-06-22T05:39:02.887 回答
8

你不能覆盖内联 CSS !important,因为它具有更高的优先级,但是,使用 JavaScript,你可以实现你想要的。

于 2012-06-22T05:59:56.243 回答
5

您不能覆盖具有!important. 首选是内联样式。

例如:我们有一堂课

.styleT{float:left;padding-left:4px;width:90px;}

并在jsp中

<div class="styleT" id="inputT" style="padding-left:0px;">

这里不采用。除了 padding-left:4px; 之外padding-left:4px;,它需要类。styleT会有padding-left:0px;

于 2012-06-22T05:52:54.010 回答
3

这是一个简单的 jQuery 解决方案。

$(document).ready(function() { 
$('div').css('display','block');
})
于 2016-02-10T07:40:47.567 回答
2

你可以看看这个例子!CSS 选择器有几个规则。最强的选择器是内联的(如果相同级别有/没有!important)。下一个:id、class 等。所以如果一个标签已经被内联 css 与 !important 风格化,你只有一个方法:使用 Javascript 来改变。

var pid = document.getElementById('pid');
var button = document.getElementById('button');
button.addEventListener('click', function(){
  pid.style.color = '';
});
p{color:violet !important;}

*{color:blue !important;}

html *{color:brown !important;}

html p{color:lighblue !important;}

.pclass{color:yellow !important;}

#pid{color:green !important;}
<p class="pclass" id="pid" style="color:red !important;">
Hello, stylize for me !
</p>

<button id='button'>Change color by JS</button>

如您所见,内联 css 的样式已被删除,id 是现在最强的选择器!

于 2019-05-17T09:41:35.977 回答
0

两个 CSS 属性应用于同一节点时的优先规则:

  • !important击败不- !important。如果同样!重要,...

  • style属性胜过文件中的 css。如果两者都在css文件中......

  • CSS 选择器中的 ID 胜过没有 ID。并且更多的 ID 击败更少。(并且您认为选择器中没有两个 ID 的原因。)如果相同的 ID 计数...

  • 选择器中的类或属性[name],对它们进行计数;更多的节拍更少。如果所有这些都一样...

  • 标签名称如spanor input,多节拍少。

所以你看到内联!important是最高优先级。

于 2018-09-24T00:02:27.793 回答