web前端浮動塌陷

2021-09-11 22:30:58 字數 1292 閱讀 4543

浮動塌陷概念:

1,在文件流中,父元素的高度是預設被子元素撐開的。也就是說子元素多高父元素多高。

2,但是當為子元素設定為浮動是,子元素會完全脫離文件流,此時會導致子元素無法撐開父元素高度,導致父元素高度塌陷。

3,由於父元素高塌陷,則父元素下的所有元素便都會向上移,導致布局混亂。

解決塌陷的方法:

1,為浮動元素的上級(即所說的父元素)新增高度

***:父元素無法自適應子元素的高度。

2,bfc(black formatting context):塊級格式化上下文

概念:根據w3c的標準,在頁面中元素都存在乙個隱藏屬性即(bfc),該屬性可以開啟或者關閉,預設為關閉。

開啟bfc特徵:

(1)父元素的垂直外邊距不會和子元素重疊

(2)開啟bfc的元素不會被浮動元素所覆蓋

(3)開啟bfc的元素可以包含浮動的子元素

開啟bfc特徵的方法:

(1)設定元素浮動

(2)設定元素絕對定位

-----------設定這兩種方式開啟,雖然可以撐開父元素,但會導致父元素的寬度丟失,而且這種方式會導致下邊的元素上移,不能解決問題

(3)設定元素為inline-block

-----------可以解決問題,但會導致寬度,不推薦使用。

(4)將元素的overflow設定為乙個非visible的值

------------推薦方式:將overflow的值設定為hidden是***最小開啟bfc的方式

弊端:不適用於ie6及以下瀏覽器,不支援bfc。

相容方法:zoom:1;隱藏屬性:(haslayout)

3 ,clear:both(清除對其影響最大的浮動元素)

清除左右浮動,會導致兩個div之間的margin值失效,多用於兄弟元素。

4,隔牆法:

在中間乙個空盒子,然後給那個空盒子clear:both;這樣加了一堵牆之後,第二個div就能掉下來並且不干擾了上面的元素。而且第二個div還是能通過magin-top調節兩個div(「牆體」div不要算進去)之間的間距,所以隔牆法作為乙個新的套路沿傳開來。

5,隔牆法進化版—內牆法

使用偽類選擇器:after

.clearfix:after

/*相容ie6*/.clearfix

/*使用屬性選擇器進行選擇清除塌陷的元素*/

web前端 解決因為浮動而引發的父元素塌陷問題

父元素因為浮動塌陷問題解決方法 注 清除浮動為 clear both left right。不會使得浮動的元素特性消失,只會作用於受到浮動影響的其他元素。1 給父元素設定高度 有侷限性 1 給父元素設定高度 height 200px 2 外牆法 不能撐開父元素 2 讓外牆清除父元素的浮動 outer...

web 前端歷程(2)浮動與清除浮動

web 前端歷程 2 浮動與清除浮動 簡單的來看,這裡的 layout div是無法顯示出背景黃色屬性的 原因 子元素left和right是直接浮動的,這時脫離了普通的文件流,進而無法直接的撐起父級元素的高度 即認為父級元素塌陷!所以要撐起來呀 type text css body layout l...

CSS 浮動和高度塌陷

溢位文字為省略號 p 溢位文字兩行之後為省略號 p 文字 數字的字串兩行之後為省略號 p 1 相鄰塊元素垂直外邊距的合併當上下相鄰的兩個塊元素相遇時,如果上面的元素有下外邊距margin bottom,下面的元素有上外邊距margin top,則他們之間的垂直距離不是margin bottom與ma...