CSS浮動之高度塌陷

CSS浮動之高度塌陷

     ** “浮動”二字,顧名思義,就是讓一個元素飄着、浮着,使之脫離文檔流;它的作用就是讓豎着排的元素橫向排列。**

實例:用兩個div標籤
  浮動之前
在這裏插入圖片描述
在這裏插入圖片描述
浮動之後

在這裏插入圖片描述
在這裏插入圖片描述

浮動的屬性值:左浮動:float:left;
         右浮動:float:right;
         默認值:float:none;

接下來我們來談談元素浮動之後出現的高度塌陷的問題。那什麼是高度塌陷呢?

所謂浮動造成的高度塌陷,就是在父元素沒有設置高度的情況下,其子元素浮動後,脫離文檔流,則父元素處於塌陷狀態(沒有高度);因爲子元素浮動後是不佔據父元素的位置空間的。舉個形象的例子:在塑料袋(父元素)中放了一個小紙箱(子元素),此時塑料袋是被小紙箱撐大的,小紙箱佔據了塑料袋的空間,而當你把小紙箱拿出來時(浮動),塑料袋裏沒有了小紙箱,則之前被撐開的塑料袋就會變癟,沒有了高度,失去空間。這就是高度塌陷。

而當出現高度塌陷後我們如何解決呢?(用兩個div標籤來實驗)

如圖:父元素(box1)和子元素(box2)的初始狀態

初始狀態是box2在box1中,box1並沒有設置高度,結果父元素box1是被撐開的。
在這裏插入圖片描述
在這裏插入圖片描述

當子元素(box2)浮動之後就讓父元素(box1)產生了高度塌陷。
在這裏插入圖片描述
在這裏插入圖片描述

通常解決高度塌陷的方法有4種:

1.給父元素(box1)設置高度(這種方法適合高度固定的佈局)
在這裏插入圖片描述
 在這裏插入圖片描述

2.給父元素添加聲明overflow:hidden;(不建議使用)
在這裏插入圖片描述
 在這裏插入圖片描述

3.給所有的浮動元素的最後添加一個空標籤,如div、p等,然後添加聲明{clear:both; }。如果考慮到IE6和IE7瀏覽器低版本的兼容問題,再加上 hight:0; overflow:hidden;(不建議使用)
在這裏插入圖片描述
  在這裏插入圖片描述

4.用after僞元素清除浮動(萬能清除法),給塌陷的父元素添加聲明 box1:after{content:””; clear:both; display:block; visibility:hidden; }。如果考慮到IE6和IE7瀏覽器低版本的兼容問題,再加上 hight:0; overflow:hidden;(通用法)
在這裏插入圖片描述
在這裏插入圖片描述

另外還有3種解決方法,雖然能解決高度塌陷的問題,但是還帶來其他的問題;所以基本不用。(瞭解)

1.父元素也浮動;(治標不治本,引發其他問題)
2.給父元素display:table;(轉成表格)
3.可以給父元素添加overflow:auto/scroll;(容易造成滾動條)

小夥伴們 ,以上這些方法都可以解決浮動帶來的高度塌陷的問題噢!對此你們是不是對高度塌陷有了更多的理解,也歡迎在評論區中提出其他解決高度塌陷的方法。讓我們一起在學習中成長,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章