CSS选择器的优先级顺序如下:
-
!important - 行内样式中声明的
!important
规则具有最高的优先级,可以覆盖其他所有相同属性的规则。 -
ID选择器 - 使用
#
符号的选择器,如#myId
,优先级次于!important
。 -
类选择器、属性选择器、伪类选择器 - 使用
.
符号的选择器,如.myClass
,以及属性选择器和伪类选择器,优先级次于ID选择器。 -
标签选择器、伪元素选择器 - 如
div
、li:nth-child
,优先级次于类选择器。 -
通配符选择器 -
*
,优先级最低。 -
继承 - 子元素继承父元素的某些样式属性,但在选择器优先级中不计算在内。
-
浏览器默认样式 - 浏览器为某些元素提供的默认样式,优先级最低。
当多个选择器作用于同一个元素时,浏览器会根据这些规则的组合来确定最终生效的样式。如果有多个样式规则作用于同一个元素,并且它们的优先级相同,那么后定义的规则会覆盖先定义的规则(层叠规则)。
需要注意的是,如果某个属性被声明了!important
,那么该属性值将会覆盖其他所有相同属性的声明,无论其来源或优先级如何