上代码

<div class="red yellow" style="height:200px; width: 200px;"><div>
.yellow {
    background: yellow;
}

.red {
    background: red;
}

这个区域渲染出来是什么颜色呢?红色? 黄色?

答案是红色

不知道有多少人和我有一样的误区,一直以为是由class中的排版顺序决定同优先级样式应用顺序的。。。

实际上是谁在css文件中,权重相等,声明在后面,那么最终就应用谁

解释

W3C 上面的说明
https://www.w3.org/TR/CSS2/cascade.html#cascading-order

Finally, sort by order specified: if two declarations have the same weight, origin and specificity, the latter specified wins. Declarations in imported style sheets are considered to be before any declarations in the style sheet itself.

大致意思就是,如果两个选择器的声明权重相等,那么谁在后面,最后就应用谁。


zhiwei
1.4k 声望18 粉丝

急招:现盒马优选业务启动,前端人才紧缺,HC 多多(目前未限制,P6起步),面试流程极速(平均 3 天走完技术面),在阿里 HC 全面收紧的情况下,机会难得,欢迎大家加入盒马体验技术团队!