1.一个元素float以后,为什么要清除浮动?清除浮动的方法有哪些?
浮动确实是经常用,也知道清除浮动的必要性,但要我道个所以然,还是得绞尽脑汁。我个人的理解是,当一个元素float以后,就脱离正常的文档流,高度塌陷,也就是浮动元素原来的占位空间就消失了,那么紧跟着的元素的宽度就会占据浮动元素的位置,好像浮动元素不存在似的。那么疑问就来了,如果紧跟着的元素没有任何的清除浮动行为,但是感觉好像认的浮动元素一样,给他让出空间,请看:
<span style="font-size:18px;"><div style="float:left;with:100px;height:100px;background:yellow;">float content</div>
<div class="normal" style="background:red;height:800px;">normal content</div></span>
效果:
其实,经过求证.normal元素并没有认得float元素,他的宽度其实有延伸到float那边,只是float元素覆盖在他的上面,即z-index比较高,不信,你看一下效果(.class{margin-left:-10px;}):