利用BFC來解決高度坍塌問題

部分內容來自:http://www.itdecent.cn/p/7e04ed3f4bea

我們都知道,父元素在文檔流中高度默認是被子元素撐開的,當子元素脫離文檔流以后,將無法撐起父元素的高度,也就會導致父元素的高度塌陷

那么我們可以利用BFC來解決這個問題,讓我們先來看一個實例:

```

<style>

? ? ? .divBox{

? ? ? ? width:300px;

? ? ? ? background: #cecedb;

? ? ? ? border:1px solid #000;

? ? ? }

? ? ? .box1{

? ? ? ? ? width: 100px;

? ? ? ? ? height: 100px;

? ? ? ? ? background: pink;

? ? ? ? ? float: left; /* 注意:第一個div添加了浮動元素float,此時的塊脫離了文檔流? */

? ? ? }

? ? ? .box2{

? ? ? ? ? width: 200px;

? ? ? ? ? height: 50px;

? ? ? ? ? background: yellow;

? ? ? ? ? /* 這時的第二個div沒有脫離文檔流(沒有浮動元素),自身的高撐開了父級的高 */

? ? ? }

? ? </style>

<body>

? ? <div class="divBox">

? ? ? ? <div class="box1"></div>

? ? ? ? <div class="box2"></div>

? ? </div>

</body>

```

結果如下:


從以上的結果可以看到,父級出現(xiàn)了高度坍塌。解決關鍵是BFC

那么什么是BFC?

BFC(Block Formatting Context),塊級格式化上下文,它規(guī)定了內部的塊級元素的布局方式,默認情況下只有根元素(即body)一個塊級上下文。它是頁面中的一塊渲染區(qū)域,并且有一套渲染規(guī)則。

那么要怎么建立BFC?

一個BFC可以被顯式觸發(fā),只需滿足以下條件之一:

float的值不為none;

overflow的值不為visible;

position的值為fixed / absolute;

display的值為table-cell / table-caption / inline-block / flex / inline-flex。

那么我們要怎么用BFC來解決高度坍塌的問題呢?

給父級添加? ? overflow:hidden


但是,這也會留下一個問題,就是子元素含有定位屬性,那么子級元素超出的部分會被隱藏,那么就要用其他的方法來解決高度坍塌的問題了。至于其他的方法就留到下一篇講吧。

注:)這是我的第一篇發(fā)表的文章,如果有錯誤或者有問題的,請留言,謝謝!

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容