理解 CSS 优先级的计算方式

41 阅读1分钟

要摆脱 !important, 首先要深入理解 CSS 优先级的计算方式。

优先级权重系统 CSS 优先级可以用四位数字表示(a, b, c, d)

a: 内联样式(1000) b: ID 选择器的数量(100) c: 类选择器,属性选择器,伪类的数量(10) d: 元素选择器,伪元素的数量(1)

<template>
  <div>
    <div id="main-content">
      <div>css</div>
      <div class="article">这是一段文字</div>
    </div>
    <div id="sidebar">
      <div class="container">
        <div class="button">button</div>
      </div>
    </div>
    <div class="special">
      <div>special</div>
    </div>
  </div>
</template>

<script setup lang="ts">

</script>

<style scoped lang="scss">
// 1. 巧用 ID 选择器
// 优先级:(0,1,0,0)= 100
#main-content .article {
  font-size: 16px;
}
// 优先级(0,0,1,0) = 10
.article {
  font-size: 14px; // 会被上面的样式覆盖
}

// 2. 增加选择器的特异性
.button {
  background-color: gray;
}

.container .button {
  background-color: blue;
}

#sidebar .button {
  background-color: green;
}

// 4. 重复选择器技巧
.special {
  color: blue;
}

.special.special {
  color: red;
}
</style>

参考链接:mp.weixin.qq.com/s/5ZXKOquOf…