选择器总的来说可以分为三类(行内样式和!important不考虑)
分别用【a,b,c】来表示
其中a,表示:一个选择器中ID选择器的个数。
其中b表示:一个选择器中【类,伪类,属性】选择器的个数。
其中c表示:一个选择器中【元素、伪元素】选择器的个数。
当出现混合选择器时,就可以按照上述原则来进行计算。
计算原则为:当abc都有时,a的权重最高,
当第一位a的数量相同时,比如都有1个选择器,那么就看下一位b的个数【类,伪类,属性】,
同理,当第二位b的数量相同时,比如都有两个类或伪类或属性,或者总个数为2,那么就来到第三位c的判断。
看【元素、伪元素】的个数,谁多就是谁的优先级高,如果个数还是相同,就遵循后来者居上原则(就是谁最后写就按照谁的样式)。
一开始说了行内样式和!important不考虑,说明他们不遵循上面的规则。
首先,一旦出现行内样式,不管你上面的a,b,c的个数有多少个,都以行内样式为准,除非行内样式有的没有设置。
而!important又是另一个特殊,它是最高的,!important>行内样式,当然了,上面的,a,b,c,也肯定不如它,一旦给某一个元素样式中书写了!important,就以它的样式为准!!!