什么時候需要清除浮動,清除浮動都有哪些方法

浮動float最開始出現(xiàn)的意義是為了讓文字環(huán)繞圖片而已,后來用于讓三個塊級元素并排展示,這時候就出現(xiàn)了浮動

不過,由于float會導致浮動元素的父元素高度坍塌,所以,這時候就要去清除浮動

如果我們給上面的三個綠顏色的方塊設(shè)置display:inline-block也能達到讓它們并排顯示的效果。并且父元素的高度也不會塌陷。只不過無法控制是居左還是居右,display:inline-block只能從左往右。

清除浮動的方法:

(1) 在浮動元素最后增加一個冗余元素為其設(shè)置 clear:both

(2) 給父元素增加 clearfix

<div class="box clearfix">

 <div class="div"></div>

</div>

.clearfix:after{
    content: '';
    display: table;
    clear: both;
}

(3) 給父元素增加:

overflow:hidden;
zoom:1;

給父元素增加 overflow: hidden; 可以清除浮動的原理:

增加后,父元素會形成一個塊級格式化上下文,即BFC,overflow: hidden本意是將父元素中溢出的內(nèi)容裁切掉,而BFC中,在計算父元素真實高度時候,也把float元素的高度算入其中,所以在計算裁切的同時,順帶達成了清除浮動的目的

BFC塊級格式化上下文有以下特征:

內(nèi)部的Box會在垂直方向,從頂部開始一個接一個地放置。
Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生疊加。
每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
BFC的區(qū)域不會與float box疊加。
BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素,反之亦然。
計算BFC的高度時,浮動元素也參與計算。

不單單只有給父元素添加overflow:hidden才可以創(chuàng)建塊級格式化上下文,下列方法都可以:

浮動 (元素的 float不為 none)
絕對定位元素 (元素的 position為 absolute 或 fixed)
行內(nèi)塊 inline-blocks (元素的 display: inline-block)
表格單元格 (元素的 display: table-cell,HTML表格單元格默認屬性)
表格標題 (元素的 display: table-caption,HTML表格標題默認屬性)
overflow的值不為 visible的元素
彈性盒子 flex boxes (元素的 display: flex 或 inline-flex)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么時候要清除浮動 其實浮動float最開始出現(xiàn)的意義只是為了讓文字環(huán)繞圖片而已。但人們發(fā)現(xiàn),如果想要三個塊級元素...
    xyfun閱讀 8,616評論 0 14
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,107評論 1 92
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,070評論 0 2
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 特征: 1、浮動元素會脫離正常的文檔流...
    我要認真學前端閱讀 2,870評論 0 5
  • 你無需告訴每個人,那一個個艱難的日子是如何熬過來的,大多數(shù)人都看你飛得高不高,很少人在意你飛得累不累。所以,做該做...
    羅掌柜real閱讀 211評論 0 0

友情鏈接更多精彩內(nèi)容