CSS优先级主要是根据选择符的权重问题来判断的,当不同选择符的样式设置有冲突时,会采用权重高的选择符设置的样式。
权重规则:
HTML标签的权重是1 (p,a,div)
class的权重是10 (.test .room)
id的权重是100 (#test #room)
例子
p a的权重是1+1=2
p .test的权重是1+10=11
#test .red的权重是100+10=110
如果CSS选择符权重相同,那么样式会准许你就近原则,哪个选择符最后定义,就采用哪个选择符的样式。
注意:
1、就近原则指的是选择符定义的先后顺序,而不是挂class名的先后顺序
<div class="test1 test2"></div>和<div class="test2 test1"></div>实际上是一样的
2、使用子选择器:#box1 div p 这类样式,html标签较为简洁,但是会增加css选择符的权重,权重越高,样式越不容易被覆盖。
除非HTML结构很稳定,否则进来不要使用子选择器。
目的:为了保证样式容易被覆盖,可维护性高。CSS选择符的权重尽量低。
!important最高权重的选择符(在IE6下某些情况不识别)
IE6不识别:.test{
color:blue !important;
color:red;
}
IE6识别.test{
color:blue !important;
}
.test{
color:red;
切记:不到万不得已不使用!important,因为他的权重最高,导致后期难以维护
一般仅用来临时处理发生的紧急bug