CSS层叠与继承


层叠机制(处理声明冲突)
第一步:比较优先级
含义:优先级低的声明会被淘汰,高的则胜出,若优先级相等则比较特殊性
优先级从低到高
1、浏览器默认样式表中的声明
2、用户样式表中的普通声明
3、作者样式表中的普通声明
4、作者样式表中的重要声明
5、用户样式表中的重要声明
第二步:比较特殊性
含义:每一个声明都有一个权重,当发生冲突时,特殊性高的会保留,低的被淘汰,当特殊性相同时再比较源次序
特殊性定义:一个声明的特殊性,取决于规则适用范围的大小;规则适用范围越大,特殊性越低;适用范围越小,特殊性越高
特殊性从高到低
行内样式>ID选择器>类选择器>元素选择器>通配符选择器
特殊性值(a,b,c,d)计算方式
a:若声明是行内样式,则为1,否则为0
b:规则中ID选择器的个数
c:规则中类选择器、伪类选择器、属性选择器的个数
d:规则中元素选择器、伪元素选择器的个数
a越大,特殊性越高,若a相同,则比较b,以此类推
第三步:比较源次序
含义:优先级、特殊性相同时,最后出现的声明胜出,其他的淘汰
继承
定义:指子元素会自动拥有父元素的某些CSS属性
需要满足的条件
1、该属性是可继承属性
2、该属性在样式表中没有声明
可被继承的属性:color、font-size、font-weight、text-align(大多数文本类CSS属性都可被继承)
不可被继承的属性:目前学的只有background-color
强制继承:也叫显式继承,是指将CSS属性值设置为inherit
继承具有传递性

posted on 2018-01-01 19:35  为所域为  阅读(124)  评论(0编辑  收藏  举报

导航