假设您有三个要素:
<header>
<!-- stuff -->
</header>
<main style="background-color:red;">
<!-- stuff -->
<div style="float:left;height:300px;">tall stuff</div>
</main>
<footer style="background-color:blue;clear:both;">
<!-- stuff -->
</footer>
当然,div
会戳出main
元素的底部。可以修复插入<div style="clear:both;"></div>
元素作为main
的最后一个子元素。我讨厌这样做(而且我对这些东西的了解真的已经过时了),我想知道是否有替代品。
答案 0 :(得分:2)
你可以使用伪元素只使用CSS:
main:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
答案 1 :(得分:1)
是的,您可以将overflow:auto
添加到父元素。
<header>
stuff
</header>
<main style="background-color:red;overflow:auto;">
stuff
<div style="float:left;height:300px;">tall stuff</div>
</main>
<footer style="background-color:blue;clear:both;">
stuff
</footer>
<强> jsFiddle example 强>