关键词:css, 三大特性, 权重叠加, !important
层叠性(新定义的样式会覆盖已定义的样式)
- 样式冲突,遵循的原则是就近原则。 那个样式离着结构近,就执行那个样式。
- 样式不冲突,不会层叠。
继承性
子标签会继承父标签的某些样式,如文本颜色和字号。
特殊性(权重、优先级)
specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。 子元素的权重为0。
权重的叠加
权重叠加只会累计数值,不会跨级别进位。所以不管多少个0,0,0,1叠加,也不会变成0,0,1,0
div ul li ------> 0,0,0,3
.nav ul li ------> 0,0,1,2
a:hover -----—> 0,0,1,1
.nav a ------> 0,0,1,1
#nav p ------> 0,1,0,1
继承的权重
子元素继承父元素的样式,不继承父元素样式的权重,继承过来的权重为0。
优先级
权重是优先级的算法,层叠是优先级的表现。
- 使用了
!important
声明的规则。 - 内嵌在 HTML 元素的 style属性里面的声明。
- 使用了 ID 选择器的规则。
- 使用了类选择器、属性选择器、伪元素和伪类选择器的规则。
- 使用了元素选择器的规则。
- 只包含一个通用选择器的规则。
!important 的使用
p {
/* 标签选择器的权重 0,0,0,1 */
/* !important的权重 无穷大 */
/* 只要出现!important,将会被执行 */
color: gray !important;
}
PREVIOUSCSS链接伪类选择器
NEXTCSS定位属性