1

我有一个 div,它的默认类给它一个绿色背景。按下鼠标时,我想将背景更改为红色,直到松开鼠标。

我试图添加一个具有红色背景颜色的类。新的类属性似乎不会覆盖现有属性。我在 .css 文件中的原始类之后列出了新类。

css

#calc_no { background-color: #cd9781; }
#calc_yes { background-color: #8fba8e; }
.button_click { background-color: red; }

脚本

$('.button').live('mousedown', function() {
    $(this).addClass("button_click");
});
$('.button').live('mouseup', function() {
    $(this).removeClass('button_click');
});

html

<div id="calc_yes" class="kp_button button">Yes</div>
4

3 回答 3

4

在 CSS 中,不同类型的选择器具有不同的权重。例如,一个 id 比一个类具有更大的权重,后者比一个标签名称具有更大的权重。因此,您的基于 id 的样式将覆盖基于类的样式。

对于这种简单的情况,请尝试使用!important关键字:

.button_click { background-color: red !important; }

http://www.w3.org/TR/CSS2/cascade.html#specificity

于 2010-11-20T19:28:56.547 回答
3

问题是 ids 覆盖类定义。更改类中的背景而不是 id

于 2010-11-20T19:20:06.377 回答
1

ID > 类

您可以改用 .calc_no 和 .calc_yes

于 2010-11-20T19:18:20.000 回答