继承性
子标签会继承父标签的某些样式,如文本颜色和字号(⼦承⽗业)
作用:给父元素设置属性,子元素也可以使用
可以继承的常⻅属性(⽂字控制属性都可以继承)
- color
- font-style、font-weight、font-size、font-family
- text-indent、text-align
- line-height
注意点
- 并不是所有的元素都可以继承 (text-,font-,line-这些元素开头的可以继承,以及color属性)
- 在CSS的继承中不仅仅是儿子可以继承,只要是后代都可以继承
- 继承性中的特殊性
a标签的文字颜色和下划线是不能继承的
h标签的文字大小是不能继承的
应用场景
- 一般用于设置网页上的一些共性信息,例如网页的文字颜色,字体,文字大小等内容
- 可以直接给ul设置 list-style:none 属性,从⽽去除列表默认的⼩圆点样式
- 直接给body标签设置统⼀的font-size,从⽽统⼀不同浏览器默认⽂字⼤⼩
继承失效的特殊情况
➢ 如果元素有浏览器默认样式,此时继承性依然存在,但是优先显⽰浏览器的默认样式
- a标签的color会继承失效。 其实color属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了
- h系列标签的font-size会继承失效。 其实font-size属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了
层叠性
给同⼀个标签设置不同的样式 → 此时样式会层叠叠加 → 会共同作⽤在标签上
给同⼀个标签设置相同的样式 → 此时样式会层叠覆盖 → 会在最后的样式上⽣效
层叠性主要解决样式冲突的问题
作用:层叠性就是css处理冲突的一种能力
层叠性原则:
样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
样式不冲突,不会层叠
优先级
当同一个元素指定多个选择器,就会有优先级的产生。
- 选择器相同,则执行层叠性
- 选择器不同,则根据选择器权重执行
作用:当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定
!important > 行内样式 > ID选择器 > 类选择器 > 元素选择器 > 通配选择器 > 继承 > 浏览器默认
注意:并集选择器的每一个部分是分开算的!!!
| CSS选择器 | 选择器优先级 - 权重计算 |
|---|---|
| 继承父标签的样式 , * 通配符选择器 | 0,0,0,0 |
| 标签选择器 | 0,0,0,1 |
| 类选择器,链接伪类选择器 | 0,0,1,0 |
| ID 选择器 | 0,1,0,0 |
| 标签的行内样式 style 属性 | 1,0,0,0 |
| 样式后添加 !important | 权重无穷大 |
优先级判断方式
- 间接选中
如果是间接选中,那么就是谁离目标标签比较近就听谁的
- 相同选择器
如果都是直接选中,并且都是同类型的选择器,那么最后一个生效
- 不同选择器
如果都是直接选中,并且不是相同类型的选择器,那么就会按照选择器的优先级来层叠
优先级注意点
- 权重是有4组数字组成,但是不会有进位。
- 可以理解为类选择器永远大于元素选择器, id选择器永远大于类选择器,以此类推..
- 等级判断从左向右,如果某一位数值相同,则判断下一位数值。
- 可以简单记忆法: 通配符和继承权重为0, 标签选择器为1,类(伪类)选择器为10, id选择器100, 行内样式表为1000, !important 无穷大.
- 继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。
权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。