3

我发现如果我们编写内联 css(或使用 JavaScript 添加它),那么我们就会失去 css hover 的价值。有可能改变这种行为吗?

简单的例子


<div id="test" style="color: red">test</div>
<style>
#test:hover {
    color:blue;
}
</style>

在这种情况下,悬停不起作用。

更新

我不能使用!important,因为之后我将无法通过 JavaScript 更改该属性。

我也动态生成样式,所以我不能通过 JavaScript 添加特定的类。

4

4 回答 4

3

因为内联 css 会覆盖文件中的 css 样式,如果你有

color: blue !important

它会起作用但不推荐,尽管哈哈,你总是可以使用 jquery 来删除内联样式标签

更新:

使用 jquery 或使用 javascript 时删除样式标签...添加 !important 以便内联 css 很重要

于 2012-05-17T20:12:05.880 回答
3

我不能使用!important,因为之后我将无法通过 javascript 更改该属性。

您仍然可以使用!important,只需使用 JavaScript 添加一个类并随时删除它。

演示

于 2012-05-17T20:12:15.463 回答
3

最简单的方法如下

$(selector).hover(function() {
                $st = $(this).attr("style");
                $(this).attr("style","");
            },function() {
                $(this).attr("style",$st);
            });
于 2012-05-17T20:30:08.970 回答
0

在 CSS 中,该style属性将覆盖任何style元素或stylesheets. 如果您无法更改该style属性,则必须使用!important. 如果您可以style完全删除该属性并将所有内容放在style元素中。甚至更好的是,stylesheet您的问题将单独解决。

PS 该type属性是style元素所必需的。这不会解决您的问题,但您应该更改<style><style type="text/css">

于 2012-05-17T20:15:07.193 回答