清除浮動和BFC

網(wǎng)頁布局,實現(xiàn)水平方向的布局,就會用到浮動,今天用一篇文章總結(jié)下如何解決元素浮動對原布局所帶來的影響:

BFC:

BFC是塊級格式化上下文,是一種顯示渲染規(guī)則。
介紹
只有同屬一個BFC時且兩個元素之間沒有阻擋時才會發(fā)生margin合并。阻止元素被浮動元素所覆蓋??梢詫⒏釉匕?。

如何生成BFC

  1. 設(shè)置float為left或者right。
  2. 設(shè)置overflow為hidden、auto、scroll三者中的一種。
  3. 設(shè)置display為inline-block、table-caption、table-cell三者中的一種。
  4. 設(shè)置position為absolute或者fiexd。

BFC作用
清除浮動,為父元素創(chuàng)建BFC,可以讓父元素包含子浮動元素
解決外邊距合并問題
消除文字圍繞float元素的效果。

浮動元素:

特征:脫離文檔正常流,根據(jù)設(shè)置的浮動方式向左或向右浮動,直到遇到所處容器的的邊框或其它浮動元素。
對父容器的影響:會使父容器高度塌陷;
對其它浮動元素的影響:會阻止其它浮動元素繼續(xù)移動;
對普通元素的影響:普通元素就像感知不到浮動元素的存在,浮動元素會覆蓋住普通元素;
對文字的影響:文字能夠感知到浮動元素,會環(huán)繞浮動元素按順序顯示;

例子:

<head>
<style>
.ct{border:1px solid pink;}
.ct1{float:left;width:100px;background:red;}
.ct2{float:left;width:100px;background:green;}
</style>
</head>
<body>
<div class="ct clear">
  <div class="ct1"></div>
  <div class="ct2"></div>
</div>
</body>

解決辦法:

  1. 增加空div。
    在浮動原色最下方加入一個空的div,并且設(shè)置這個div為clear:both;
    缺點:增加一個無用的div。
  1. 使用CSS屬性為父元素創(chuàng)建一個BFC,利用BFC可以包含浮動元素的特性清除浮動元素。
    缺點:float可能會影響布局,position:absolute;可能得到的結(jié)果并不是自己想要的。
  1. 利用偽類:after清除。(推薦使用)
    .clearfix{
    zoom:1; /IE6、7*/
    }
    .clear{
    content:" ";
    display:block;
    clear:both;
    }
最后編輯于
?著作權(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,090評論 1 92
  • 清除浮動的常用三種方式一、clear:both /left /right /none /inherit分別代表在元...
    加加大叔閱讀 440評論 0 1
  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 992評論 0 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,066評論 0 2
  • 浮動,從誕生那天起,它就是個特別的屬性——既為網(wǎng)頁布局帶來新的方法,卻又隨之產(chǎn)生一系列的問題。當(dāng)然,隨著時間的推移...
    郝特么冷閱讀 907評論 0 6

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