多个!重要的类声明和优先级
从理论上讲,如果你有这种情况:
<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,就像你可以在小提琴中看到的那样!