CSS层叠性(Cascading)是指在同一元素上应用多个样式时,浏览器按照一定的规则进行样式的应用和覆盖,从而影响元素的最终样式。权重(Specificity)指的是CSS选择器的优先级,用于确定应用的样式哪一个具有最高的优先权。
权重的计算方法如下,按照以下规则逐级比较:
1. 选择器的类型(元素选择器、类选择器、ID选择器等),根据表格计算权重,优先级从高到低为:
- ID选择器:权重为100。
- 类选择器、属性选择器和伪类选择器:权重为10。
- 元素选择器和伪元素选择器:权重为1。
2. 如果两个选择器都有一样的权重,则按照顺序进行覆盖,后定义的样式会覆盖先定义的样式。如果样式定义了!important,优先级最高。
3. 组合选择器中多个选择器的权重相加。
举例说明:
假设有以下三个选择器:
如果同时应用于同一元素,根据选择器的类型计算权重,可得到:
因此,若样式规则冲突产生,则根据权重逐级比较,权重值较高的样式优先生效。但需要注意的是,建议尽量避免使用ID选择器,因为它容易对CSS样式的复用和维护造成影响。