CSS特性

115 阅读4分钟

继承性

子标签会继承父标签的某些样式,如文本颜色和字号(⼦承⽗业)

作用:给父元素设置属性,子元素也可以使用

可以继承的常⻅属性(⽂字控制属性都可以继承)

  1. color
  2. font-style、font-weight、font-size、font-family
  3. text-indent、text-align
  4. line-height

注意点

  1. 并不是所有的元素都可以继承 (text-,font-,line-这些元素开头的可以继承,以及color属性)
  2. 在CSS的继承中不仅仅是儿子可以继承,只要是后代都可以继承
  3. 继承性中的特殊性
     a标签的文字颜色和下划线是不能继承的
     h标签的文字大小是不能继承的

应用场景

  • 一般用于设置网页上的一些共性信息,例如网页的文字颜色,字体,文字大小等内容
  • 可以直接给ul设置 list-style:none 属性,从⽽去除列表默认的⼩圆点样式
  • 直接给body标签设置统⼀的font-size,从⽽统⼀不同浏览器默认⽂字⼤⼩

继承失效的特殊情况

➢ 如果元素有浏览器默认样式,此时继承性依然存在,但是优先显⽰浏览器的默认样式

  1. a标签的color会继承失效。 其实color属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了
  2. h系列标签的font-size会继承失效。 其实font-size属性继承下来了,但是被浏览器默认设置的样式给覆盖掉了

层叠性

给同⼀个标签设置不同的样式 → 此时样式会层叠叠加 → 会共同作⽤在标签上

给同⼀个标签设置相同的样式 → 此时样式会层叠覆盖 → 会在最后的样式上⽣效

层叠性主要解决样式冲突的问题

作用:层叠性就是css处理冲突的一种能力

层叠性原则:

样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式

样式不冲突,不会层叠

优先级

当同一个元素指定多个选择器,就会有优先级的产生。

  1. 选择器相同,则执行层叠性
  2. 选择器不同,则根据选择器权重执行

作用:当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定

!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​权重无穷大

优先级判断方式

  1. 间接选中

如果是间接选中,那么就是谁离目标标签比较近就听谁的

  1. 相同选择器

如果都是直接选中,并且都是同类型的选择器,那么最后一个生效

  1. 不同选择器

如果都是直接选中,并且不是相同类型的选择器,那么就会按照选择器的优先级来层叠

优先级注意点

  1. 权重是有4组数字组成,但是不会有进位。
  2. 可以理解为类选择器永远大于元素选择器, id选择器永远大于类选择器,以此类推..
  3. 等级判断从左向右,如果某一位数值相同,则判断下一位数值。
  4. 可以简单记忆法: 通配符和继承权重为0, 标签选择器为1,类(伪类)选择器为10, id选择器100, 行内样式表为1000, !important 无穷大.
  5. 继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。