我知道float属性可以让元素部分脱离正常流。但令我惊讶的是,在一个浮动div后面的下一个div也会占用该浮动div的空间。例如:
.header {
float: left;
height: 100px;
width: 100%;
background: green;
padding: 10px;
background-clip: content-box;
}
.footer {
background: yellow;
border: 1px dotted red;
padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="header">HEADER</div>
<div class="footer">FOOTER is yellow with red border</div>
</div>
另一个惊喜是绿色背景遮盖了黄色背景。这就是层叠顺序的工作方式吗?在 html 中后面的 div 在层叠顺序中处于前面的 div 下方,这正常吗?
请提供相关参考来解释这些行为。
footer
上使用clear
属性会将其向下推,因为它会让footer
认为前面的浮动元素现在处于流动状态。 - user31782