CSS的三大特性
为层叠性,继承性、优先级。
层叠性
相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要
决样式突的问题。
层叠性原则:
- 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
- 样式不冲突,不会层叠
继承性
CSS中的继承子标签会继承父标签的某些样式,如文本颜色和字号。简单的理解就是∶子承父业。
- 恰当地使用继承可以简化代码,降低CSS样式的复杂性
- 子元素可以继承父元素的样式( text-, font-, line-这些元素开头的可以继承,以及color属性)
特殊:行高的继承
font: 12px/1.5 'Microsoft YaHei';
div {font-size: 14px;}
子元素继承了父元素的行高1.5
这个1.5就是当前元素文字大小font-size 的1.5倍所以当前div的行高,也就是21像素。
<ul>
<li>我没有指定文字大小</li>
</ul>
li没有手动指定文字大小,则会继承父亲的文字大小12px,所有li 的文字大小为 12px
优先级
当同一个元素指定多个选择器,就会有优先级的产生。
- 选择器相同,则执行层叠性
- 选择器不同,则根据选择器权重执行
权重由低到高依次为
- 继承或者* 0,0,0,0
- 元素选择器 0,0,0,1
- 类选择器,伪类选择器 0,0,1,0
- ID选择器 0,1,0,0
- 行内样式style="" 1,0,0,0
- !important重要的 最牛
!important使用如下
div {
color: pink!important;
}
权重的叠加
如果是复合选择器,则会有权重叠加,需要计算权重
- 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