特性:层叠性、继承性、优先级
1,层叠性
作用:解决样式的冲突情况
相同选择器给设置相同的样式,此时一个样式就会覆盖(层罍)另一个冲突的样式。层叠性主要解决样式中突的问题层叠性原则:
div{
color: red;
font-size: 12px;//并没有别的和字体大小相层叠,所以它还可以正常执行
}
div{
color: pink;
}
样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
样式不冲突,不会层叠
口诀:长江后浪推前浪,前浪死在沙滩上
2,继承性
子代可以继承父类标签的某些样式,如颜色,大小等
子元素可以继承父元素的样式(text-font-,line-这些元素开头的可以继承,以及color属性)
口诀:龙生龙,逢生凤,老鼠生的孩子会打洞
2.2行高的继承
子类继承父类的行高,1.5是1.5倍的意思,是子代的行高=子代字体大小*1.5
优势:根据字体大小自动调整行高
3,优先级
当同一个元素指定多个选择器,就会有优先级的产生。
(1)选择器相同,则执行层叠性
(2)选择器不同,则根据选择器权重执行
css的注意事项:
1.权重是有4组数字组成,但是不会有进位。
2.可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器,以此类推3.等级判断从左向右,如果某一位数值相同,则判断下一位数值。
4.可以简单记忆法: 通配符和继承权重为0,标签选择器为1,类(伪类)选择器为10,id选择器 100,行内样式表为1000,!important无穷大,
5.继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0.
/* 父亲的权重是100 */
#father{
color: red;
}
/* p的权重继承父亲后为0,所以以后我们看标签执行那个样式(子类),就先看看这个有没有被直接选错了 */
p{
color: pink;
}
/* 子代的颜色还是粉色 */
权重叠加:
权重叠加:如果是复合选择器则会有权重叠加,需要计算权重,
div ul li---------->0003
.nav ul li----------->0012
a:hover-------------->001 1
.nav a---------------->0011