设置/覆盖背景颜色时的 jQuery / CSS 优先级
我正在使用 jQuery 将 addClass
悬停在 div
上...但背景颜色不会改变。我猜这是因为它之前已经在 CSS 中分配了背景颜色?悬停时会出现 hover
类上的其他属性(边框),因此 addClass
可以正常工作。
我怎样才能/应该让这项工作发挥作用?
jQuery
$('.pick1-box').hover(
-> $(this).addClass('hover')
-> $(this).removeClass('hover')
)
CSS
.pick1-box, .pick2-box {
...
background: #eee;
...
}
.hover {
background-color: yellow;
border: 1px solid red;
}
html
...
<li class='nominee clearfix' id='146'>
<div class='candidate'>
<img alt="Enders" height="80" src="/assets/25803sm.jpg" />
Dick Waddington
</div>
<div class='pick-boxes'>
<div class='pick1-box'>
1
</div>
<div class='pick2-box'>
2
</div>
</div>
</li>
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这取决于你如何加载 jquery 和代码,但试试这个:
It depends how you're loading jquery and code but try this:
您可以尝试重新排序或向 CSS 添加重要内容,或者您可以执行以下操作:
因为元素样式优先。
You can try re-ordering or adding an important to your CSS, or you could do something like:
since element styles take precedence.
正如您所说,问题是因为受影响元素的样式属性中的样式已被覆盖。您有几个选项:
The problem, as you've stated, is because the style has been overridden in the style attribute of the element being affected. You have a couple of options:
您可以使第二条规则更具体:
css特异性
这假设您的
.hover
css 实际上发生在.pick1-box
规则之前,因为它们具有相同的特异性,稍后发生的将具有优先。You could make the 2nd rule more specific:
css specificity
This assumes that your
.hover
css actually occurs prior to the.pick1-box
rule as these have equal specificity, the one which occurs later will have precedence.