CSS佈局–overflow:hidden的清除效果
來自《精通CSS》閱讀的思考:
原文使用兩列的浮動佈局,首先設置兩列內容爲float,並設置display:inline-block,以此防止IE中雙外邊距浮動產生的bug,然後在兩個浮動元素的父元素應用了overflow:hidden
原文:因爲這些元素是浮動的,它們不再在文檔流中佔據任何空間,這會導致頁腳上升。爲了避免這種情況,需要對父元素應用溢出方法,從而清理浮動元素。
overflow:hidden 的原義是超出的部分要裁掉隱藏
當父元素的高度沒有顯式設置,爲默認值height:auto,且只包含浮動元素時,由於float元素脫離文檔流,他的高度不計算在父元素中,正常的父元素height應該爲0,但是在給父元素加上overflow:hidden後,進行裁剪前,父元素會首先計算height: auto;的真實高度,由於其觸發了BFC,需要包含子元素,所以高度不是0,而是子元素高度。根據BFC規則浮動元素不僅沒有被剪裁掉,還能達到清除浮動的效果。
詳細介紹BFC(Block formatting context)的好文:
http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html