高度塌陷的產生條件和解決方法

2021-10-03 05:56:07 字數 1916 閱讀 1437

高度塌陷一般由浮動或者絕對或固定定位引起,定位引起的高度塌陷可以更換定位,這裡就不再累述了,這裡介紹下浮動引起的高度塌陷及解決辦法。

浮動除了會讓元素水平排列外,還會讓元素脫離文件,讓下面的元素頂上去,文字會環繞顯示,這就是高度塌陷。

.box

.box1,.box2,.box3

![在這裡插入描述](

可以看到,如果父元素不設定高度父元素便會塌陷。下面介紹解決方法

方法一:給父元素設定高度;

問題解決。

優點:簡單直接

缺點:高度不能隨內容的高度進行自適應。

方法二:給父元素加overflow:hidden;zoom:1;

overflow:hidden;會觸發父元素為bfc;bfc中規定計算bfc高度時浮動元素參與計算;zoom:1是為了解決overflow:hidden在ie7及以下的相容問題;

優點:簡單且高度隨內容自適用;

缺點:容易和定位發生衝突;

方法三:給所有浮動元素的最後新增乙個空標籤,新增宣告clear:both;height:0;overflow:hidden;

="box"

>

="box1"

>

<

/div>

="box2"

>

<

/div>

="box3"

>

<

/div>

="clear"

>

<

/div>

<

/div>

="under"

>我是下面的元素<

clear:both;目的是清除浮動;

overflow:hidden;height:0;是解決部分容器在ie低版本上有預設高度的問題;

優點:比較方便,高度也隨內容自適應,也不會發生內容溢位隱藏

缺點:會造成大量冗餘**;

方法四:利用偽元素選擇器解決高度塌陷;

利用:after偽類選擇器清除浮動時候,基本語法為

塌陷元素:after

宣告 height: 0;overflow:hidden;為了避免ie相容問題;

宣告visibility: hidden;是隱藏content引號內的內容;

這種清除高度塌陷的方法又叫萬能清楚法,通常頁面開發的時候,會建立乙個公共類,方便產生高度塌陷的元素進行呼叫;

優點:都是優點

缺點:沒有缺點

其他不常用方法:

原理都是觸發父元素為bfc,和方法二相同;

1.給父元素新增浮動:會產生新的高度塌陷問題;

2.給父元素新增display:table;會影響自身功能;

3.overflow:auto/scroll;前者內容溢位會出現滾動條,後者直接出現滾動欄;

高度塌陷的產生條件和解決方法

高度塌陷的產生條件 父元素沒有設定高度,所有的子元素都浮動 父元素在文件流中高度預設是被子元素撐開的,當子元素脫離文件流以後,將無法撐起父元素的高度,也就會導致父元素的高度塌陷 高度塌陷的解決辦法 1.給父元素設定高度,此方法適合高度固定的布局 原理 父級div手動定義height,就解決了父級di...

頁面布局產生高度塌陷解決方法

給父級元素新增高度 優點 解決簡單 缺點 就不能做到寬高自適應了 在出現高度塌陷的父級元素設定overflow hidden 優點 可以解決高度塌陷並且能做到自適應,好理解 缺點 超出當前父級元素的盒子都會被隱藏掉 在最後乙個盒子新增標籤div,設定解決高度塌陷的樣式 預設樣式 clear both...

高度塌陷的產生原因及解決方法

當父元素未設定高度 時,所有子元素浮動後,造成 子元素脫離文件流進而無法把父元素撐開,父元素高度為0 產生高度塌陷 稱為高度塌陷問題。父元素高度塌陷後,父元素以下的元素都會向上移動,導致布局混亂,所以我們要解決高度塌陷的問題。如下 當我們讓div1和div浮動之後 我們可以發現,當子元素全都浮動後,...