选择器的优先级是如何计算的?

单个选择器优先级从高到低分别是:

1.!important:在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式
2.内联样式:style="..."
3.ID选择器
4.类选择器
5.伪类选择器
6.属性选择器
7.标签选择器
8.通配符选择器
9.浏览器自定义

复杂场景优先级需要计算:

按权重由高到低作如下归类:

  • 行内样式
    ==> a
  • ID 选择器 ==> b
  • 类,属性选择器和伪类选择器 ==> c
  • 标签选择器、伪元素 ==> d

当a权重相同的时候,比较b,以此类推,谁的权重大就显示谁的样式

示例:

选择器 权 重
* a=0 b=0 c=0 d=1
p a=0 b=0 c=0 d=1
a:hover a=0 b=0 c=0 d=2
ul li a=0 b=0 c=0 d=2
ul ol+li a=0 b=0 c=0 d=3
h1+input[type=hidden] a=0 b=0 c=1 d=2
ul ol li.active a=0 b=0 c=1 d=3
#ct .box p a=0 b=1 c=1 d=1
div#header:after a=0 b=1 c=0 d=2
style="" a=1 b=0 c=0 d=0

你可能感兴趣的:(选择器的优先级是如何计算的?)