可以整个css".class"具有它的特异性!重要吗?

Mac*_*vin 20 css jquery class css-specificity

我正在大量使用jQuery UI小部件,并且由于我需要解决的疏忽,主题变得越来越难.

考虑这个问题:

<div id="node" class="ui-widget">
    <div class="ui-widget-content">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后这个jquery

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

我希望ui-state-error对嵌套div很重要.这是伪代码,但我发现大量的例子发生在容器有css交换和子(basicaly)忽略它的情况下.更糟糕的是:如果我想能够在jQuery中覆盖说"backgroundcolor = ui-state-error:background-color知道100%这一切都不会破碎,因为我不知道"必然,该背景是有关元素的重要背景.

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

编辑我打算推荐这个问题是关闭的,因为没有任何尝试的答案,只是从原始帖子的本质偏离太多

jfr*_*d00 17

首先!important应用于CSS规则中的一个特定声明.它不适用于班级.所以,"不"你不能上课!important.

第二关,!important只是CSS特异性的一部分.您还可以使用其他方法使规则成为具有优先权的更具体的规则(例如在父链中引用id而不仅仅是类.当我编写CSS时,使用!important是我最后一个可能的选择- 我宁愿用其他特殊解决方案来解决覆盖.通常,如果你控制所有的CSS,这很容易避免使用!important.如果你必须覆盖一些你无法控制的CSS,那么有时它很方便.

如果你的jQuery代码要在对象上切换一个类,那么你将不得不制定你的CSS规则,以便添加/删除这个类使得正确的CSS声明具有优先权.为了帮助您进一步了解该部分,您需要向我们展示HTML和CSS的相关部分,以便我们就如何解决您的优先级/特异性问题提出建议.

  • @Juan Mendes思考!重要的是对于不了解CSS特异性的人来说是无用的. (3认同)
  • @Juan我不同意 - 我认为在一个区域应该有完整的360度第三维控制(EG:在`声明`开关中哪里是`!不重要`或`删除'是强制性的'积极性'的直接转换内联样式中的属性(或者对于EG:where is`!important-asif-inline-status`)那种东西 (2认同)