跳到主要内容

选择器的权重

样式的继承

  • 设置给祖先元素的样式,也会同时应用到其后代元素上
  • 继承的存在大大的简化了样式的编写
    • 但并不是所有的样式都会发生继承
    • 所有的布局、背景、边框等相关的样式都不会发生继承

样式的冲突

  • 当我们使用不同的选择器,选中一个元素并设置相同的样式时,就发生了样式的冲突

  • 当样式冲突发生时,哪个样式生效由选择器的优先级(权重)决定:

    • 继承的样式:没有优先级
    • 通配选择器:0,0,0,0
    • 元素选择器:0,0,0,1
    • 类和伪类选择器:0,0,1,0
    • id选择器:0,1,0,0
    • 内联样式:1,0,0,0
  • 比较优先级时,需要将多个选择器的优先级一起计算

    • 优先级高的优先显示,优先级的累加无法跨越数量级
    • 如果优先级一样,则优先显示靠下的
    • 如果为样式添加 !important,则该样式会获得最高的优先级,优先于其他样式显示,慎用!
    • 注意:分组选择器优先级都是单独计算的
      div.box1{} /* 0,0,1,1 */
      .box1{} /* 0,0,1,0 */