<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
.after{
width: 300px;
height: 200px;
margin: 10px;
box-shadow: 0px 10px 30px #cfcfcf;
}
#container .after {
background: red;
}
.container #after {
background: blue;
}
</style>
</head>
<body>
<div class="container" id="container">
<div class="after" id="after"></div>
</div>
</body>
</html>
为什么这个div出来的时蓝色 不是红色
这个CSS执行顺序的问题,就近原则。
因为 #container .after 和 .container #after 优先级是相同的,都是 id + class
但是 #container .after 定义的红色被 .container #after 覆盖,所以显示的是蓝色;