我有一个使用jQuery添加类(3a494c9da73d redis "docker-entrypoint.sh"
10 seconds ago Up 9 seconds 0.0.0.0:6379->6379/tcp
)的代码。该课程已应用,但该课程的某些风格不起作用:
.class2
$('.item1').addClass('class2');
答案 0 :(得分:1)
这是因为.item1
已经有background-color
并覆盖新类background-color
添加的新.class2
,因此您可以尝试使规则更加具体,如:< / p>
.item1.class2 {
...
background-color: rgba(0, 0, 0, .85);
}
希望这有帮助。
答案 1 :(得分:1)
问题不在jQuery上。问题出在CSS规则上。
浏览器始终会应用更具体的规则,例如:
HTML:
<div id="my-div">
<ul class="my-list">
<li class="my-item">
</ul>
</div>
CSS:
#my-div > ul > li.my-item {
background-color: none;
}
.my-item {
background-color: red
}
浏览器将检查哪些规则更具体,在这种情况下,第一个规则显然更具体。
如果要覆盖此规则,则必须编写至少具有相同特异性(Check this specificity calculator)的规则。
如果规则具有完全相同的特异性,则将应用最后一个规则。
使用浏览器开发人员工具检查元素上应用的规则,然后编写一个至少具有相同特异性的规则。
没有确切的解决方案,因为应该分析整个页面。
首先让我们了解!important
的工作原理。 !important将使你的规则具有最高的特异性,例如&#34;无限&#34;特异性。
因此规则只能在此规则之后覆盖规则,也可以使用!important。
好的,这有效,解决了我的问题,对吗?
虽然现在可以解决您的问题,但这种做法并不好,并且会让您很难维护CSS。
如果你在所有事情上都使用它,那么你就是要杀死C
CSS
(层叠样式表),你只需要依赖规则命令,有时你就不会能够编写你想要的规则。
每个开始使用CSS的人都认为Cascade是一件无聊的事情,在所有事情上使用!important很好,但不是。你迟早会意识到。
答案 2 :(得分:0)
您的代码正在为我工作(见下文)。如果您的样式被其他规则覆盖,请检查您的开发者控制台。在这种情况下,请使用更高的特定性,例如.item1.class2
覆盖已设置的背景颜色。
!important
不是解决方案,但最好是解决方法(这是一种不好的做法)。尝试组织规则以获得正确的顺序。
// JS with jQuery
$('.item1').addClass('class2');
&#13;
.item1 {
font-size: 40px;
text-align: center;
height: 60px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 0px 0px;
text-decoration: none;
color: white;
margin: -10px 0px;
-webkit-transition: background-color 0.4s;
-moz-transition: background-color 0.4s;
transition: background-color 0.4s;
}
.item1:hover {
background-color: rgba(0, 0, 0, 0.7);
}
.item1.class2 {
background-color: rgba(0, 0, 0, .85);
border: 1px solid black;
cursor: default;
/* background-color and border aren't applied */
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item1"></div>
&#13;
答案 3 :(得分:-2)
如果加载jquery库,仍然无法正常工作。 你可以在样式中添加!important,这样就可以了解样式,这里是class2的代码示例。
.class2 {
background-color: rgba(0, 0, 0, .85) !important;
border: 1px solid black !important;
cursor: default !important;
/* background-color and border aren't applied */
}
javascript jquery