今天看到这个问题,重新总结,留下点笔记
什么是css的权重?
1、要了解权重,必须先了解css样式的6种基础选择器
(1)id选择器 #
(2)类选择器 .className
(3)属性选择器 [attr]
(4)伪类和伪元素 :hover :first-line
(5)标签选择器 p
(6)通配符选择器 *
2其它的选择符均可由基本的组成,组合的方式分为三种
(1)后代选择符 .className .classChildName
(2)子选择符 .className > .classChildName
(3)相邻选择符 .className + .classChildName
3而所谓的权重就是指这些选择符的优先级,优先级和权重有如下规则
(1)优先级越高的css样式会覆盖优先级低的样式,优先级越高权重越高
(2)计算权重的规则,根据w3c的css规范:
a.计算选择符中 id选择器 的数量 (假设是100)
b.计算选择符中 类选择器、属性选择器、伪类选择器 的数量(假设是10)
c.计算选择符中 标签选择器、伪元素 的数量(假设是1)
(3) 比较各自选择符的优先级时,计算权重,权重大则优先级高
(4)从博客园看到的口诀:
权重记忆口诀。从0开始,一个行内样式+1000,一个id+100,一个属性选择器/class或者伪类+10,一个元素名,或者伪元素+1