本文为个人学习记录用文章,如有不对或不足之处请指出,感激不尽。
在我的观点里,CSS中选择器可分为三类:标签选择器、类选择器和ID选择器,其他诸如后代选择器、组群选择器、伪类选择器等都是前者的延伸。
其中选择器的优先级大致可分为:!important >> id选择器 >> 伪类选择器 >> 类选择器 >> 后代选择器 >> 组群选择器 = 标签选择器。
同级选择器,后者的样式会覆盖前者。
之所以用远大于是因为再多的后者累加优先级也不会大于前者,例如#myid优先级比.myclass1.myclass2.mycalss3还要高。
!important常用于改插件、类库与框架之中的css样式,因为其中很多貌似无法通过其他选择器修改样式(摊手)。
在复合选择器中,无论顺序的先后,同级的选择器相互抵消,最后剩下的选择器优先级高的则整体优先级高,例如:1. #id1 #id2 .class1 .class2,2. #id1 .class1 label #id2,抵消之后,.class2 > label,所以1的优先级高。