可以将整个CSS的“.class”有它的特异性!重要? [关闭](can an entire c

2019-09-02 15:42发布

我在的jQuery UI部件大量工作,更换主题皮肤变得因为我需要解决一个监督的努力。

考虑一下这个问题:

<div id="node" class="ui-widget">
    <div class="ui-widget-content">
    </div>
</div>

那么这个jQuery

<script>
 $(function() { 
       $('#node').hover(function (){
           $(this).toggleClass("ui-state-error");
       });
 }); 
</script>

我想在UI状态误差是!到嵌套DIV重要。 这是伪代码,但我觉得这样的情况,其中容器具有CSS互换和儿童的大实例(basicaly)忽略它。 更糟的是这样的:如果我想能在jQuery的覆盖说“的backgroundColor = UI状态错误:明知的backgroundColor 100%,这一切就不会垮掉,因为我不‘知道’一定是这样的背景下是有问题的元素的重要之一。

这里是一个很好的例子的小提琴http://jsfiddle.net/WCuYH/1/

编辑我要推荐这个问题被关闭,因为还没有在回答任何企图,只是从原来的精华帖太多漂移

Answer 1:

第一关!important适用于一个CSS规则,一个特定的声明。 它并不适用于一类。 因此,“不”,你不能让一个班级!important

第二关, !important是CSS特异性的只是其中的一部分。 您还可以使用其他方式来制定一条规则是一个更具体的规则具有优先权(如参照父链,而不是仅仅的类。当我在写CSS,使用ID!重要的是我的最后一个可能的选择-我宁愿解决与其他特异性的解决方案覆盖通常情况下,如果你控制所有的CSS,这是很容易避免使用!important如果你必须重写一些CSS,你不用管,然后有时候是。便利。

如果您的jQuery代码是要切换对象的类,那么你将有手艺你的CSS规则,使添加/删除该类导致右CSS声明有优先权。 对于我们来说,与部分帮助你进一步,你需要向我们展示你的HTML和CSS两者的相关部分,所以我们可以在如何解决您的优先/特异性的问题提出建议。



文章来源: can an entire css “.class” have it's specificity as !important? [closed]