CSS优先级是用来确定多个CSS规则应用于同一个元素时的顺序。计算CSS优先级遵循以下规则:
-
在CSS规则中使用的选择器越具体,优先级越高。选择器的具体性是通过选择器的组成部分进行计算的。
- ID选择器比属性选择器和类选择器具有更高的优先级。
- 类选择器和属性选择器具有相同的优先级,但比元素选择器更高。
- 元素选择器的优先级最低。
-
在选择器具体性相同的情况下,后面出现的规则具有更高的优先级。
-
内联样式具有最高的优先级,即直接在HTML元素的style属性中定义的样式。
-
通过!important声明的样式具有最高的优先级。但是,滥用!important可能导致样式难以管理和维护,因此应谨慎使用。
优先级是用四个数字来表示的,格式为(a, b, c, d),其中a是内联样式的权重,b是ID选择器的权重,c是类选择器、属性选择器和伪类选择器的权重,d是元素选择器和伪元素选择器的权重。权重数字越大,优先级越高。
具体的计算规则如下:
- 对于内联样式,a = 1。
- 对于ID选择器,b = 1。
- 对于类选择器、属性选择器和伪类选择器,c的计算规则为选择器中类选择器的数量 + 属性选择器的数量 + 伪类选择器的数量。
- 对于元素选择器和伪元素选择器,d的计算规则为选择器中元素选择器的数量 + 伪元素选择器的数量。
例如,对于以下CSS规则:
p {color: blue;
}#myId {color: red;
}.myClass {color: green;
}
对于<p id="myId" class="myClass">Hello, world!</p>
元素,应用的样式为红色,因为ID选择器的优先级更高。
注意:计算优先级时,不考虑选择器的权重具体数值,只考虑相对大小。