CSS三大特性:层叠性,继承性,优先级

102 阅读2分钟

1、CSS的层叠性

  • 当样式发生冲突时, 权重相同的选择器,后面的样式会把前面的样式覆盖掉(层叠掉),就近原则
  • 背景颜色background-color不生效时,考虑是不是 background 复合属性里的 backgroud-color:transparent 把前面的背景颜色给层叠掉了
  • 行高line-height不生效时,考虑是不是 font 复合属性 中有默认的行高,把前面的行高给层叠掉了

2、CSS的继承性

可以继承的属性

  • 字体系列:fontfont-familyfont-weightfont-sizefont-style
  • 文本系列属性:
    • 内联元素:colorline-heightword-spacingletter-spacingtext-transform
    • 块级元素:text-indenttext-align
  • 元素可见性:visibility
  • 表格布局属性:border-collapseborder-spacingempty-cellstable-layoutcaption-side
  • 列表布局属性:list-style

不能继承的属性

  • display:规定元素应改生成的框的类型
  • 文本属性:vertical-aligntext-decoration
  • 盒子模型的属性:widthheightmarginborderpadding
  • 背景属性:backgroundbackground-colorbackground-image
  • 定位属性:floatclearlefttoprightbottommin-heightmin-widthmax-heightmax-widthoverflowclip
  • text-decoration比较特殊,可以继承,但检查时显示灰色

继承的特殊情况

  • 标题标签 h1-h6 不会继承父元素的文字大小
  • a标签不会继承父元素的文字颜色

3、CSS的优先级

CSS权重选择器优先级计算表格:

选择器选择器权重
继承或*0, 0, 0, 0
元素选择器0, 0, 0, 1
类选择器,伪类选择器0, 0, 1, 0
ID选择器0, 1, 0, 0
行内样式 style=""1, 0, 0, 0
!importtent∞ 无穷大

优先级注意点

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

权重会叠加

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

---div ul li 0,0,0,3

---.nav ul li 0,0,1,2

--- a:hover 0,0,1,1

--- #box p 0,1,0,1

**!important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性**