先看一看最终的效果图:

上图中,布局采用了上下布局,而上面部分采用左(LEFT)右(RIGHT)布局。上面部分的布局中的红色边框是左右布局的外部容器,它的高度自适应了 LEFT 或 RIGHT 的最大高度。它能够自适应高度完全是因为我们添加了 .app::after{},并且使用 clear: both; 清除了左右布局的浮动效果。
实例代码如下:
<div class="app">
<div class="left">LEFT</div>
<div class="right">RIGHT</div>
</div>
<div class="app2">BOTTOM</div>
<style type="text/css">
.app {
min-height: 10px;
width: 80%;
margin-left: 10%;
border: solid 1px red;
padding: 5px;
}
.app2 {
min-height: 10px;
width: 80%;
margin-left: 10%;
border: solid 1px red;
padding: 5px;
margin-top:10px;
}
.app .left {
height: 200px;
width: 40%;
background: yellowgreen;
float: left;
}
.app .right {
height: 400px;
width: 60%;
background: orchid;
float: left;
}
.app::after {
content: '';
height: 10px;
background: blue;
display: block;
clear: both;
}
</style>如果我们将 .app::after 样式选择器中的 clear 注释掉,代码如下:
<style type="text/css">
.app::after {
content: '';
height: 10px;
background: blue;
display: block;
/* clear: both; */
}
</style>效果图如下:

上图中,上部分的左右布局外部容器没有被自动撑高,这是因为 LEFT 和 RIGHT 采用了浮动布局,脱离了文档流,不占用空间。