我创建了一个自定义样式表,它覆盖了Wordpress模板的原始CSS。但是,在我的日历页面上,原始CSS具有每个表格单元格的高度,并带有!important
声明:
td {height: 100px !important}
我有什么办法可以覆盖这个吗?
答案 0 :(得分:293)
只需添加另一个带有!important
的CSS规则,并为选择器提供更高的特异性(向选择器添加额外的标记,id或类),或者在稍后添加具有相同选择器的CSS规则比现有的(最后一个定义胜利)。
一些具有更高特异性的例子:
table td {height: 50px !important;}
.myTable td {height: 50px !important;}
#myTable td {height: 50px !important;}
或者在现有选择器之后添加相同的选择器:
td {height: 50px !important;}
使用!important
几乎绝不是一个好主意。这是WordPress模板的创建者的糟糕工程。以病毒式方式,它强制模板的用户添加自己的!important
修饰符来覆盖它,并限制通过JavaScript覆盖它的选项。
但是,如果你有时必须知道 如何覆盖它是有用的。
答案 1 :(得分:29)
只有当样式表中的选择器出现!important
冲突时,才应使用specificity。
但即使你的特异性存在冲突,最好为异常创建一个更具体的选择器。在您的情况下,最好在HTML中使用class
,您可以使用该!important
创建一个不需要td.a-semantic-class-name { height: 100px; }
规则的更具体的选择器。
!important
我个人从不在我的样式表中使用!important
。请记住,CSS中的C是用于级联的。使用{{1}}会破坏这一点。
答案 2 :(得分:10)
好的,这是关于CSS重要性的快速课程。我希望以下有帮助!
首先,样式的每个部分都称为加权,因此与该样式相关的元素越多,它就越重要。例如
#P1 .Page {height:100px;}
比以下更重要:
.Page {height:100px;}
因此,当使用重要时,理想情况下,只有在真正需要时才能使用它。因此,要覆盖decleration,使样式更具体,但也要覆盖。见下文:
td {width:100px !important;}
table tr td .override {width:150px !important;}
我希望这会有所帮助!!!
答案 3 :(得分:8)
使用JavaScript覆盖
$('.mytable td').attr('style', 'display: none !important');
为我工作。
干杯!
答案 4 :(得分:8)
免责声明:不惜一切代价避免重要。
这是一个肮脏,肮脏的黑客攻击,但你可以通过在你试图覆盖重要内容的属性上使用(无限循环或非常持久)动画来覆盖!important,而不是!important。 / p>
animation
@keyframes forceYellow {
from {
background-color: yellow;
}
to {
background-color: yellow;
}
}
div {
width: 100px;
height: 100px;
margin: 0 auto;
background: red !important;
animation: 1s linear infinite forceYellow;
}
答案 5 :(得分:6)
这也有帮助
td[style] {height: 50px !important;}
这将覆盖任何内联样式
答案 6 :(得分:1)
在任何情况下,您都可以使用max-height覆盖“ height”
答案 7 :(得分:0)
这里有几个答案对我有用。谢谢。我应该提到的一件事是,根据我自己的经验,也许还有很多人在这里寻找答案的经验,我敢肯定大多数人都不想使用!important,但必须这样做。我在许多项目中使用Joomla CMS,并且模板开发人员使用!important喷洒代码。很难解决他们的代码,并且在覆盖文件中,使用!important的次数比实际所需的次数多。
答案 8 :(得分:-5)
我想补充一个未提及的答案,因为我已经尝试了以上所有内容但无济于事。我的具体情况是我使用的是semantic-ui,它在元素上内置了!important
属性(非常烦人)。我尝试了一切来覆盖它,但最终只做了一件事(使用jquery)。它如下:
$('.active').css('cssText', 'border-radius: 0px !important');