当浮动元素占用一些空间时,"普通"文本就会腾出空间来容纳浮动元素.但普通文本周围的边界不与浮动元素相交,而是与浮动元素相交.
在下面的例子中,如何在蓝色框开始之前使第一个红色框结束,并且没有重叠?而让不需要与浮动元素共享空间的第二个红框仍然占据100%?
div#toc {
float: right;
width: 300px;
padding: 20px;
border: 1px solid blue;
}
div.warn {
padding: 20px;
border: 1px solid red;
}
<div id="toc">
<h2>Table of contents</h2>
<ol>
<li>Chapter 1</li>
<li>Chapter 2</li>
<li>Chapter 3</li>
</ol>
</div>
<div id="main">
<h1>Chapter 1</h1>
<p>In the beginning ...</p>
<div class="warn">
Fairy tale, watch out!
</div>
<p>... and were married happily ever after.</p>
<div class="warn">
Don't retell!
</div>
</div>