多个!重要的类声明和优先级

从理论上讲,如果你有这种情况:

<style type="text/css"> .class1 { color:#F00 !important; } .class2 { color:#00F !important; } </style> <p class="class2 class1">Test</p> 

哪种颜色应该优先? 在这种情况下,浏览器如何确定优先级?

根据这个来源: http : //www.boogiejack.com/CSS_4.html

class2应该重写class1样式。

规范的顺序:作为最后的手段,当所有其他的冲突解决规范不能确定哪种风格应该优先,最后指定的风格将是使用的风格。

使用两个权重相同的select器,无论是将两者应用于!important还是从两者中省略,行为都是相同的。

 <style type="text/css"> .class1 { color: #F00; /* red */ } .class2 { color: #00F; /* blue */ } </style> 

html类属性中的类的顺序与每个类select器的特定性级别无关。

 <p class="class2 class1">Test X</p> <p class="class1 class2">Test Y</p> 

产量

  • testingX→蓝色
  • testingY→蓝色

如果你只在一个select器类上使用!important ,那么这个select器将优先(因为它具有更高的特异性)。

由于类添加到元素时都是“同等重要”,所以将它们分配给段落并不重要。

在这种情况下, .class1.class2中的color都被声明为重要的,但是因为.class2是在.class1之后声明的,所以浏览器将以蓝色显示您的段落,因为它会覆盖.class1声明的颜色

另外,看看这个: http : //jsfiddle.net/3uPXx/1/你可以看到,你在哪个顺序上声明你的段落的类无关紧要。 由于这两个类定义了相同的属性( color ),因此将被覆盖的是最后声明的类。

唯一可以覆盖这个的就是一个inline-style,就像你可以在小提琴中看到的那样!