css 选择器的权重计算方式
在 CSS (层叠样式表) 中,选择器的权重由其特定性(specificity)确定。具有更高特定性的样式规则将覆盖较低特定期的规则。以下就是计算特定性的方法:内联样式(Inline Styles):在 HTML 元素内部使用 style 属性定义的样式。例如 <div style="color: red;"> 的权重是 1000。ID 选择器:如 #content(权重为 0100)。类选择器、属性选择器、伪类选择器:如 .class, [type="text"], :hover(权重为 0010)。元素选择器、伪元素选择器:如 div, p, ::before (权重为 0001)。特殊选择器:*、+、>、~ 这些组合选择器不增加权重。对于 !important 属性权重最高,出现在样式属性值后,如 color: red !important; 。计算权重时,各类选择器的数量是独立计算的,比较权重时,会按照四个层级(四个数字)进行逐级比较,权重高的样式优先生效。例如, ID 选择器的权重更高,所以 #id p(一个 ID 和一个元素,权重为 0101)会覆盖 .class .class .class(三个类,权重为 0030)的样式。可理解各部分权重为 四个 "十进制位",高位权重大于低位。 请注意:权重只是决定 CSS 样式冲突的一个因素,还应考虑源代码的顺序和继承。