清除浮動的幾種方法

1.為何要清除浮動

下面看一個非常簡單的實例,為方便

.box {
     background-color:#0000FF;
 }
.float-box {
     width:200px;
     height:200px;
     background-color:#FF0000;
 }
<div class="box">
    <div class="float-box"></div>
</div>

效果如下圖,藍色父類的高度隨著子元素高度變化而變化


clearfix1.jpg

當(dāng)在子元素上添加float后如下圖

.float-box {
        width:200px;
        height:200px;
        background-color:#FF0000;
        float:left;    /* 添加浮動 */
    }


box的高度變成0了,可能有的同學(xué)會想,變就變唄能有什么影響,那么接下來添加一個box的同級元素p

.box {
    background-color:#0000FF;
}
.float-box {
    width:200px;
    height:200px;
    background-color:#FF0000;
    float:left;
}
p {
    background-color: #FFDD55;
}
<div class="box">
    <div class="float-box"></div>
</div>
<p>
    我上來咯~
</p>

結(jié)果會變成下圖所示,可以看到正常我們肯定是希望box在上而p在下的布局,但是由于box內(nèi)的子元素浮動后導(dǎo)致box的hight為0,導(dǎo)致p標(biāo)簽直接跑到了上邊

clearfix3.jpg

總結(jié):回到標(biāo)題再來說說為何要清除浮動,清除浮動可以保證父元素(box)高度不被子元素(float-box)的浮動影響高度(父元素高度不定的情況下它的height是取決于子元素的),讓子元素回到父元素,從而保證在布局時不影響同級元素(p)

2.清除浮動的幾種方式

1. 在高度塌陷標(biāo)簽內(nèi)部最后添加一個標(biāo)簽

<div class="box">
      <div class="float-box"></div>
      <div style="clear:both"></div>    <!-- 可以清除浮動,無意義空標(biāo)簽,不建議使用 -->
</div>

2. 高度塌陷元素添加overflow屬性(auto或hidden)

3. 父元素本身也添加浮動

4. 使用css偽元素

.clearfix:after {
      content: '';
      display: block;
      height: 0;
      clear: both;
      visibility: hidden;
 }

.clearfix {
        zoom: 1;  /* ie6 ie7 haslayout */
}

優(yōu)化后的代碼

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

具體方式大家試一試吧,初學(xué)前端希望和更多的人交流~

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,162評論 1 92
  • 原文地址http://www.cnblogs.com/hx1992/p/3791587.html一、父級容器給死高...
    isaaCyu閱讀 385評論 0 0
  • 浮動的幾個重要性質(zhì) 首先,浮動有幾個很重要的性質(zhì) 脫標(biāo):脫離標(biāo)準(zhǔn)文檔流 貼邊(浮動會緊貼著浮動方向的邊 字圍(浮動...
    趙鎮(zhèn)閱讀 1,035評論 2 22
  • 文章版權(quán)歸饑人谷_Lyndon以及饑人谷所有。 1. 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分...
    HungerLyndon閱讀 2,477評論 4 10
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,078評論 0 2

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