css面試點 清除浮動方法(9種方法)

2021-09-27 08:20:31 字數 2056 閱讀 1926

浮動的定義:使元素脫離文件流,按照指定方向發生移動,遇到父級邊界或者相鄰的浮動元素停了下來。

為什麼要清除浮動?

清除浮動主要是為了解決,父元素因為子級元素浮動引起的內部高度為0的問題

當父元素不給高度的時候,內部元素不浮動時會撐開,而浮動的時候,父元素變成一條線

clear:both:在左右兩側均不允許浮動元素。本質就是閉合浮動, 就是讓父盒子閉合出口和入口,不讓子盒子出來

clear:left | right | both | none | inherit:元素的某個方向上不能有浮動元素 

如果我們清除了浮動,父元素自動檢測子盒子最高的高度,然後與其同高。

高度塌陷:如果父元素只包含浮動元素,且父元素未設定高度和寬度的時候。那麼它的高度就會塌縮為零

解決方法:

1.父級div定義偽類:after和zoom

原理:ie8以上和非ie瀏覽器才支援:after,原理和方法2有點類似,zoom(ie轉有屬性)可解決ie6,ie7浮動問題

缺點:ie6-7不支援偽元素:after,使用zoom:1觸發haslayout.

left

right

div2

2.使用before和after雙偽元素清除浮動

left

right

div2

3.在結尾處新增空div標籤clear:both

原理:新增乙個空div,利用css提高的clear:both清除浮動,讓父級div能自動獲取到高度

缺點:如果頁面浮動布局多,就要增加很多空div,讓人感覺很不爽, 缺點:新增無意義標籤,語義化差

left

right

div2

4.父級div定義height

原理:父級div手動定義height,就解決了父級div無法自動獲取到高度的問題 

缺點:只適合高度固定的布局,要給出精確的高度,如果高度和父級div不一樣時,會產生問題 建議:不推薦使用,只建議高度固定的布局時使用

left

right

div2

5.父級div定義overflow:hidden 通過觸發bfc方式,實現清除浮動

內容增多的時候容易造成不會自動換行導致內容被隱藏掉,無法顯示要溢位的元素

原理:必須定義width或zoom:1,同時不能定義height,使用overflow:hidden時,瀏覽器會自動檢查浮動區域的高度  

缺點:不能和position配合使用,因為超出的尺寸的會被隱藏 建議:只推薦沒有使用position或對overflow:hidden理解比較深的朋友使用

left

right

div2

6.父級div定義overflow:auto

原理:必須定義width或zoom:1,同時不能定義height,使用overflow:auto時,瀏覽器會自動檢查浮動區域的高度     

缺點:內部寬高超過父級div時,會出現滾動條。 建議:不推薦使用,如果你需要出現滾動條或者確保你的**不會出現滾動條就使用吧。

left

right

div2

left

right

div2

left

right

div2

9.結尾處加br標籤clear:both

8種清除浮動方法(css)

1 父級div定義height 左浮動.left right parent 原理 父級div手動定義height,就解決了父級div無法自動獲取到高度的問題。優點 簡單 少 容易掌握 缺點 只適合高度固定的布局,要給出精確的高度,如果高度和父級div不一樣時,會產生問題 建議 不推薦使用,只建議高度...

清除浮動的9種方法

1 父級div定義heigh 原理 父級div手動定義height,就解決了父級div無法自動獲取到高度的問題 優點 簡單,少,容易掌握 缺點 只適合高度固定的布局,要給出精確的高度,如果高度和父級div不一樣時,會產生問題 建議 不推薦使用,只建議高度固定的布局時使用 2 結尾處加空div標籤cl...

CSS清除浮動5種方法

清除浮動是每乙個 web前台設計師必須掌握的機能。css清除浮動大全,共8種方法。浮動會使當前標籤產生向上浮的效果,同時會影響到前後標籤 父級標籤的位置及 width height 屬性。而且同樣的 在各種瀏覽器中顯示效果也有可能不相同,這樣讓清除浮動更難了。解決浮動引起的問題有多種方法,但有些方法...