CSS背景颜色优先级

Ale*_*lex 4 css hover background-color

我正在使用jQuery更改表格行的颜色,我注意到在以下实例中我得到了不同的结果.

CSS如下:

.normalcolor {
    background-color: #dedede;
}
.reddishcolor {
    background-color: #ffc59c;
}
.hovercolor {
    background-color: #f1e1c0;
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用jQuery进行悬停效果,使用以下代码:

$("table.withhover tr").hover(function(){
    $(this).addClass("hovercolor");
}, function(){
    $(this).removeClass("hovercolor");
});
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我将鼠标悬停在一行上时class="normalcolor",背景颜色会变为一个.hovercolor.但是,当我悬停一行时class="reddishcolor",背景颜色不会改变.

这是正常的吗?如果是,为什么?它与颜色有什么关系?

谢谢!

Guf*_*ffa 7

您是否按照该顺序指定了CSS类,还是.reddishcolor最后指定的类?

当多个样式应用于元素时,将使用最具体的规则.如果规则具有同等特定性(如您的情况),则使用最新规则.

如果无法更改CSS规则的顺序,则可以使悬停类更具体,例如通过指定元素名称:

tr.hovercolor {
  background-color: #f1e1c0;
}
Run Code Online (Sandbox Code Playgroud)