问题是jQuery.css()操作的优先级高于CSS本身。示例:我有一个CSS类.active,它使按钮在单击事件时变暗。如果 { 相邻的 :checked 块中至少有一个input[type=checkbox],则设置$(this).next().css('background-color', '#339933'); }Else { 如果所有 ckeckbox 为空,则添加我们的类.active }。是的,也许不是最好的例子,但仍然是这样。
Py.Sy:我通过添加.mark类解决了这个问题。而不是$(this).next().css('background-color', '#339933'); }. 但问题仍然存在:“如何更改优先级”,当然除了 !important。
风格优先
我建议你自己熟悉 CSS 中的优先级。
使用时
jQuery.css(),直接在标签本身的style属性中添加内联样式,不会以任何方式影响jquery的优先级。jQuery.addClass()仅通过 CSS使用和管理您的优先级。使用重要!
如果存在冲突,当页面作者和用户对同一元素的样式不匹配时,则
!important可以增加样式的优先级。当使用自定义样式表或同时对同一个选择器应用不同的作者和用户样式时,浏览器遵循以下算法。
!important添加到作者的风格 - 将应用作者的风格。
!important添加到用户样式 - 将应用用户的样式。
!important在作者的风格和用户的风格中都缺失 - 将应用作者的风格。
!important包含在作者的样式和用户的样式中 - 将应用用户的样式。