CSS: 清除浮動

為什么要清除浮動

雖然說現(xiàn)在 9102 年了應該不會再有人用 float 了,但是有些老網(wǎng)頁還是會有 float 來布局的。float 帶來的主要問題是高度坍塌。如:

<div class="parent">
  <div class="children"></div>
</div>

在子元素設置了 float 后,父元素的高度就沒了。

.parent {
  border: 1px solid green;
}

.children {
  float: left;
  height: 100px;
  widtH: 100px;
  border: 1px solid red;
}

結(jié)果:

父元素的高度為0

主要的原因是因為設置了 float 之后,子元素就脫離文檔流,也就相當于浮在父元素上了,從二維變到了三維。父元素里面就中空了,高度也為0了,不再是子元素高度。

解決方法一般有兩個。

overflow

最簡單但是會帶有副作用的方法是在父元素上添加一個 overflow:hidden 就可以了。

.parent {
  overflow: hidden;
  border: 1px solid green;
}

.children {
  float: left;
  height: 100px;
  widtH: 100px;
  border: 1px solid red;
}

結(jié)果:

父元素高度回來了

但是如果代碼多了,每個地方都要加這一句很麻煩,而且有可能父元素 oveflow:hidden 和別的樣式?jīng)_突就麻煩了。

clearfix

我們可以使用另一個方法,也是推薦的方法。首先定義一個 .clearfix 的類

 .clearfix::after{
    content: ''; 
    display: block; 
    clear:both;
 }
 .clearfix{
     zoom: 1; /* IE 兼容 */
 }

然后將這個類添加到父元素上就可以了。

<div class="parent clearfix">
  <div class="children"></div>
</div>

這樣的副作用基本是沒有的,而且只需要在父元素上添加 class 類就好了,更方便。

?著作權(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)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,181評論 1 92
  • 什么是CSS清除浮動? 在非IE瀏覽器(如Firefox)下,當容器的高度為auto,且容器的內(nèi)容中有浮動(flo...
    秦至閱讀 467評論 1 8
  • 在CSS布局中float屬性經(jīng)常會被用到,但使用float屬性后會使其在普通流中脫離父容器,讓人很苦惱。 浮動帶來...
    wmsj100閱讀 926評論 0 1
  • 引言 - float 有哪些特性 破壞性float 破壞了父標簽的原本結(jié)構(gòu),使父標簽出現(xiàn)了塌陷現(xiàn)象。導致這一現(xiàn)象的...
    番茄沙司a閱讀 829評論 0 0
  • 清除浮動詳解 清除浮動主要是為了解決由于浮動元素脫離文流導致的元素重疊或者父元素高度坍塌的問題,而這兩個問題分別對...
    One_Hund閱讀 904評論 0 0

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