css优先级计算规则

css优先级计算规则

优先级的计算规则

# A B C D
内联样式
ID选择器
类选择器
属性选择器
伪类
标签选择器
伪元素

A、B、C、D各自对应不同的选择器出现的次数。

#id > div > span > a.link{}
  1. 没有内联样式A为0

  2. 有一个id选择器B为1

  3. 有一个类选择器C为1

  4. 有三个标签选择器D为3
    A、B、C、D可简写为(0,1,1,3)

优先级的比较规则是,从左往右一次比较A、B、C、D,大的优先级高。如果四位全一样,则后面的会覆盖前面的。

优先级特殊情况

  1. 在样式后面!important会将样式的优先级提升到最高。

  2. 在width后面设置!important不会影响max-width。height和max-height同理。

知识点:

  1. 属性选择器

[title]{
    color:red;
}
<h2 title="Hello world">Hello world</h2>
<a title="W3School" href="#">W3School</a>

问题

这里有一个小问题,我在尝试的时候发现给内联样式加上!important也无法覆盖伪类的样式。