css的三大特性
1.继承性
后代元素会继承祖先元素的一些样式 跟文字相关属性可以继承 color font- line- text- 可以继承
块元素可以继承父级元素的宽度,高度不继承
注意:a链接颜色不予继承,需要单独写 注意:如果元素自身有该css样式,那么该样式不予继承
2.层叠性
<style>
.box1 {
/* 最终绿色起效果 */
color: red;
color: green;
}
</style>
<div class="box"></div>
后渲染的css样式会覆盖掉先渲染的css样式 (权重相同的情况下) 注意:层叠性真针对css的书写位置,类的调用位置先后对它没有
影响
3.优先级(权重)
不同的选择器之间会有不同的优先级
继承 < 通配符 < 标签选择器 < 类选择器 < ID选择器 < 行内样式 < !important
补充:权重叠加
关于css权重,我们需要一套计算公式来计算,这个就是css specificity ,我们成为css特性或称非凡性,它是一个衡量css值优先级的一
个标准具体规范如下:
specificity 用一个四位的数字串,四个级别,值从左到有,左面的权值最大,一级大于一级,数位之间没有进制,级别之间不可超越
继承或者* 的贡献值 0,0,0,0
每个元素(标签)贡献值为 0,0,0,1
每个类,伪类贡献值为 0,0,1,0
每个ID贡献值为 0,1,0,0
每个行内样式贡献值 1,0,0,0
每个!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
#nav p ------> 0,1,0,1