lynxerzhang / JSSkills

MIT License
0 stars 0 forks source link

css使用一个class去覆盖其它class中的属性的优先级问题 #11

Open lynxerzhang opened 6 years ago

lynxerzhang commented 6 years ago

使用一个class去覆盖另一个class中声明的属性

但是这里面又会引出一个问题,如何判断一个class是否能够覆盖另一个class中的属性,这篇教程详细叙述了如何计算css specificity value

需要注意,css specificity value的数值不是十进制的,所以它使用的是诸如,(1, 0, 0, 0),(0, 1, 0, 0),也就是其中有逗号分隔。

以(1, 0, 0, 0)为例,从左到右specificity value从高到低,依次递减。第一等是内联元素的style,第二等为元素id,第三等为元素的class,伪类,属性选择,第四类为元素本身。同时要注意!important的影响,其中pseudo-class和pseudo-elements是不同的,比如first-line就是pseudo-elements,计算下来为(0, 0, 0, 1),而不像pseudo-class为(0, 0, 1, 0)