这是一个快速而肮脏的方法,假设蓝色 div 的内容从未超过 div 4+5 的高度(如果内容是真正动态/可变的,这不是一个好方法)。
对于实际使用来说不是一个好的解决方案,但您可以看到一种方法:
CSS
#outer_wrapper { position: relative; width: 700px; margin: 20px auto; background-color: gray; }
#yellow div { background-color: yellow; text-align: center; }
#blue { background-color: blue; text-align: center; }
#green div { background-color: green; text-align: center; }
#red div { background-color: red; text-align: center; }
#yellow div { float: left; width: 220px; margin: 0 20px 20px 0; }
#blue { clear: left; width: 460px; }
#green { float: right; width: 220px; }
#green div { margin-bottom: 20px; }
#red { position: absolute; bottom: 0px; clear: left; }
#red div { float: left; width: 220px; margin-right: 20px; }
.group:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
HTML
<div id="outer_wrapper" class="group">
<div id="green" class="group">
<div>3</div>
<div>4</div>
<div>5</div>
<div style="margin-bottom: 0px;">6</div>
</div>
<div id="yellow">
<div>1</div>
<div>2</div>
</div>
<div id="blue">
Sample text<br />
Sample text<br />
Sample text<br />
</div>
<div id="red">
<div>7</div>
<div>8</div>
</div>
</div>