无法覆盖规则,即使在使用 !important 时也是如此
Cannot override a rule, even when using !important
我一定是在监督某些事情或者我的代码中有一些愚蠢的错误,但我不能用 ID CSS 和 ( 覆盖 Class CSS脸红 ) 即使加上讨厌的 !important hack ...
注意:这是一个旧的(大概)WordPress 模板,仍然使用清除 div 的浮动,但我必须使用它。不是我的选择。
HTML:
<body id="page-front-page" class="page-template-homepage">
<ul class="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Gardens</a></li>
</ul>
<div class="sidebar">
blah
</div>
CSS
#page-front-page > .sidebar {
padding: 0;
position: absolute;
top: 0;
right: 0 !important;
width: 45%;
}
还有几行是
.sidebar {
width: 280px;
padding: 50px 40px;
position: absolute;
top: 0;
left: 0;
font-size: 0.71em;
font-family: 'BrandonGrotesque-Light';
}
我什至尝试交换各自 .sidebar CSS 的位置,但没有任何帮助。根本无法让 right:0;
覆盖 left:0;
。
检查器截图如下:
我错过了什么,看不到,愚蠢吗?
非常感谢!!!
尝试:
#page-front-page > .sidebar {
padding: 0;
position: absolute;
top: 0;
right: 0 !important;
width: 45%;
left:inherit!important;
}
您将使用 right 0 !important
覆盖另一个 right
声明。您正在使用它来试图覆盖另一个 属性。它不是这样工作的。没有联系,因为它们是两个不同的属性。
如果你想要left: 0
的对立面,那么试试left: 100%
...或者,正如评论中提到的@BoltClock,left: auto
.
这与 "specifity" 有关:覆盖规则的选择器必须至少与另一个选择器一样具体,因此您必须在第二条规则上使用此选择器:
#page-front-page > .sidebar {
(google for "CSS specifity" 了解选择器不同部分在特异性方面的确切重要性 )
补充:是的,正如 Michael_B 和 BoltClock 所写,您不能用 left
参数覆盖 right
参数,但必须将第一个参数重置为 auto
我一定是在监督某些事情或者我的代码中有一些愚蠢的错误,但我不能用 ID CSS 和 ( 覆盖 Class CSS脸红 ) 即使加上讨厌的 !important hack ...
注意:这是一个旧的(大概)WordPress 模板,仍然使用清除 div 的浮动,但我必须使用它。不是我的选择。
HTML:
<body id="page-front-page" class="page-template-homepage">
<ul class="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Gardens</a></li>
</ul>
<div class="sidebar">
blah
</div>
CSS
#page-front-page > .sidebar {
padding: 0;
position: absolute;
top: 0;
right: 0 !important;
width: 45%;
}
还有几行是
.sidebar {
width: 280px;
padding: 50px 40px;
position: absolute;
top: 0;
left: 0;
font-size: 0.71em;
font-family: 'BrandonGrotesque-Light';
}
我什至尝试交换各自 .sidebar CSS 的位置,但没有任何帮助。根本无法让 right:0;
覆盖 left:0;
。
检查器截图如下:
我错过了什么,看不到,愚蠢吗? 非常感谢!!!
尝试:
#page-front-page > .sidebar {
padding: 0;
position: absolute;
top: 0;
right: 0 !important;
width: 45%;
left:inherit!important;
}
您将使用 right 0 !important
覆盖另一个 right
声明。您正在使用它来试图覆盖另一个 属性。它不是这样工作的。没有联系,因为它们是两个不同的属性。
如果你想要left: 0
的对立面,那么试试left: 100%
...或者,正如评论中提到的@BoltClock,left: auto
.
这与 "specifity" 有关:覆盖规则的选择器必须至少与另一个选择器一样具体,因此您必须在第二条规则上使用此选择器:
#page-front-page > .sidebar {
(google for "CSS specifity" 了解选择器不同部分在特异性方面的确切重要性 )
补充:是的,正如 Michael_B 和 BoltClock 所写,您不能用 left
参数覆盖 right
参数,但必须将第一个参数重置为 auto