css优先级的计算方法
1.CSS优先级比较
!important > 内联样式 > id > class > 标签 > 通配符 > 继承 > 默认
2.CSS权重计算
我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。
4个等级的定义如下:
第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为0100。
第三等:代表类,伪类和属性选择器,如.content,权值为0010。
第四等:代表标签选择器和伪元素选择器,如div p,权值为0001。
第五等:通用选择器(*),子选择器(>),相邻同胞选择器(+),权值为0000
当选择不同的选择器,选中同一个元素时并且设置相同的样式时,这样样式之间就会产生冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)来决定,优先级高的优先显示。
继承的样式没有优先级
当选择器包含多种选择器时,需要将多种选择器的优先级相加然后进行比较。但是注意,选择器的优先级计算不会超过他的最大数量级,如果选择器的优先级一样,则使用靠后的样式。
并集选择器的优先级时单独计算。
可以在样式的最后添加一个!important,则此时该样式会获得一个最高的一个优先级,将会超过所有的样式甚至超过内联样式,所以在开发中尽量避免使用。
2.伪类的顺序
涉及到a的伪类一共四个:
:link
:visited
:hover
:active
这四个选择器的优先级是一样的。