css选择器的优先级是如何计算的

当多个 CSS 规则符合同一元素时,浏览器会用一系列的规则来决定哪条规则最终会被应用到该元素上。这些规则可以用来计算一个选择器的优先级,也可以帮助我们确定哪条规则会被应用。

一个选择器的优先级基于三个因素:

  • 样式表的来源:内联样式 > 嵌入样式 > 外部样式
  • 选择器的类型:ID 选择器 > 类选择器 > 元素选择器 > 通配符选择器
  • 后代选择器的层数:越深层的后代选择器优先级越高

这三个因素的优先级是:来源 > 类型 > 层数。这意味着,一个内联样式总是优先于嵌入样式表或者外部样式表中的规则,ID 选择器总是优先于类选择器,而更深层的后代选择器也总是优先于它的祖先选择器。

例如,假设有两条规则,它们分别为:

#content h1 {
  color: red;
}

h1 {
  color: blue;
}

在这两条规则中,第一条规则由一个 ID 选择器和一个元素选择器组成,而第二条规则只由一个元素选