乐闻世界logo
搜索文章和话题

css 选择器的权重计算方式

浏览32
6月24日 16:43

在 CSS (层叠样式表) 中,选择器的权重由其特定性(specificity)确定。具有更高特定性的样式规则将覆盖较低特定期的规则。以下就是计算特定性的方法:

  1. 内联样式(Inline Styles):在 HTML 元素内部使用 style 属性定义的样式。例如 <div style="color: red;"> 的权重是 1000
  2. ID 选择器:如 #content(权重为 0100)。
  3. 类选择器、属性选择器、伪类选择器:如 .class, [type="text"], :hover(权重为 0010)。
  4. 元素选择器、伪元素选择器:如 div, p, ::before (权重为 0001)。
  5. 特殊选择器:*+>~ 这些组合选择器不增加权重。
  6. 对于 !important 属性权重最高,出现在样式属性值后,如 color: red !important;

计算权重时,各类选择器的数量是独立计算的,比较权重时,会按照四个层级(四个数字)进行逐级比较,权重高的样式优先生效。例如, ID 选择器的权重更高,所以 #id p(一个 ID 和一个元素,权重为 0101)会覆盖 .class .class .class(三个类,权重为 0030)的样式。可理解各部分权重为 四个 "十进制位",高位权重大于低位。

请注意:权重只是决定 CSS 样式冲突的一个因素,还应考虑源代码的顺序和继承。

标签:CSS