如果父元素只包含浮動元素,且父元素未設置高度和寬度的時候。那麼它的高度就會塌縮為零,也就是所謂的“高度塌陷”,如果父級元素包含背景或者邊框,那麼溢出的元素就不像父級元素的一部分了。解決“高度塌陷”的問題很簡單:
1.浮動父級元素
如果讓父級元素浮動,父級元素的高度就會擴大,直到完全包含它裡面的浮動元素,雖然這個方法很奇怪,但是很有效。如果選擇這種方法,一定要在該元素的下個元素添加clear:both,確保浮動元素落到父級元素的下方。
2.利用overflow:hidden,zoom:1
復制代碼代碼如下:
{
overflow:hidden;
zoom:1;
}
overflow:hidden屬性也是CSS中比較奇怪的特性,它會強制父級元素擴大到包含浮動元素,zoom:1只是觸發IE6的hasLayout模式,不會對其他浏覽器產生影響。
3.使用“簡單清除法”
復制代碼代碼如下:
.clearfix{
zoom:1;
}
.clearfix:after{
content:'';
display:block;
height:0;
font-size:0;
clear:both;
overflow:hidden;
}
其中zoom:1還是只兼容IE6,:after是CSS中的偽類,IE6以及以下版本都不兼容。此方法可以說是綜合起來最好的方法了,不會影響任何其他樣式,通用性強,覆蓋面廣。