引入顺序影响同权重选择器的覆盖效果,但不改变优先级计算规则。特异性按(内联,id,class/伪类/属性,标签/伪元素)四维计算,如#nav .link为(0,1,1,0);当特异性相同时,后引入的样式生效,如b.css覆盖a.css的同名规则;开发中应避免依赖引入顺序,推荐用高特异性选择器或BEM规范控制样式。
css文件的引入顺序会影响同权重选择器的最终表现,但不会改变选择器本身的优先级计算规则。
浏览器根据选择器的特异性(specificity)来决定样式优先级,规则如下:
具体数值通常用四维表示:(内联, id, class/伪类/属性, 标签/伪元素)。例如:
:hover → (0,0,2,1)当两个选择器的特异性相同时,后加载的样式会覆盖先加载的。这意味着引入顺序在此时起决定性作用。
例如:
最终 .btn 文字颜色为蓝色,因为 b.css 后引入。
依赖引入顺序控制样式容易出错,推荐做法:
基本上就这些。引入顺序只在“打平”时起作用,真正可靠的控制还是靠特异性设计。