CSS!important似乎在jQuery / Firefox 3.x中不起作用

时间:2011-05-02 18:43:57

标签: jquery css firefox

请参阅小提琴:http://jsfiddle.net/csaltyj/P2sLa/

在Chrome中,这样可以正常使用,但在Firefox中却没有,并产生Javascript警告。我知道这里不需要!important,但是我有一个需要的大型项目,这导致Firefox崩溃。有什么想法吗?

1 个答案:

答案 0 :(得分:11)

搜索“jquery css important”提出a blog post explaining the "problem" 我将发布一些其他信息,但总而言之,here's your solution

$('#set-bg').click(function() {
    $('#box').css('cssText', 'background: blue !important');
});

作者声明:

  

这不是一个错误,而是一些错误   大多数浏览器不承认   因为内联风格已经有了   除用户之外的最高优先级   定义的。 (除非你不想要   您的用户可以更改他们查看您的内容   网站)。

请注意,使用cssText有一个缺点,您可能需要考虑使用 改为使用cssRules

  

cssText将覆盖css   那个特殊的元素。因此,你   将不得不重新宣布该规则   这个特殊元素到处都是   试。

尽管如此。请听听作者的总结:

  

在CSS中使用!important不是   是可取的,因为它可能会杀死你的网络   可用性。此外,没有   之所以重要,应该用作   内联样式已经是最高的   优先。因此,您可能想要   重新考虑申请!重要的是你的   思考后的脚本   可能会给你带来的后果   用户。