CSS清除浮動_清除float浮——詳解overflow:hidden 與clear:both屬性

最近剛好碰到這個問題,看完這個就明白了。寫的很好,所以轉載了!

CSS清除浮動_清除float浮動

CSS清除浮動方法集合

一、浮動產生原因   -   TOP

一般浮動是什麼情況呢?一般是一個盒子裏使用了CSS float浮動屬性,導致父級對象盒子不能被撐開,這樣CSS float浮動就產生了。

CSS浮動產生截圖
浮動產生樣式效果截圖

本來兩個黑色對象盒子是在紅色盒子內,因爲對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了。

簡單地說,浮動是因爲使用了float:leftfloat:right或兩者都是有了而產生的浮動。

二、浮動產生負作用   -   TOP

1、背景不能顯示
由於浮動產生,如果對父級設置了(CSS background背景CSS背景顏色CSS背景圖片,而父級不能被撐開,所以導致CSS背景不能顯示。

2、邊框不能撐開
如上圖中,如果父級設置了CSS邊框屬性(css border),由於子級裏使用了float屬性,產生浮動,父級不能被撐開,導致邊框不能隨內容而被撐開。

3、margin padding設置值不能正確顯示
由於浮動導致父級子級之間設置了css padding、css margin屬性的值不能正確表達。特別是上下邊的padding和margin不能正確顯示。

三、css解決浮動,清除浮動方法   -   TOP

這裏DIVCSS5爲了統一講解浮動解決方法,假設了有三個盒子對象,一個父級裏包含了兩個子級,子級一個使用了float:left屬性,另外一個子級使用float:right屬性。同時設置div css border,父級css邊框顏色爲紅色,兩個子級邊框顏色爲藍色;父級CSS背景樣式爲黃色,兩個子級背景爲白色;父級css width寬度爲400px,兩個子級css寬度均爲180px,兩個子級再設置相同高度100px,父級css height高度暫不設置(通常爲實際css佈局時候這樣父級都不設置高度,而高度是隨內容增加自適應高度)。

父級CSS命名爲“.divcss5”對應html標籤使用“<div class="divcss5">”
兩個子級CSS命名分別爲“.divcss5-left”“.divcss5-right”

根據以上描述DIVCSS5給出對應CSS代碼HTML代碼片段

CSS代碼:

  1. .divcss5{ width:400px; border:1px solid #F00; background:#FF0} 
  2. .divcss5-left,.divcss5-right{ width:180px; height:100px; 
  3.  border:1px solid #00F; background:#FFF} 
  4. .divcss5-left{ float:left} 
  5. .divcss5-right{ float:right} 

對應html源代碼片段:

  1. <div class="divcss5"> 
  2.     <div class="divcss5-left">left浮動</div> 
  3.     <div class="divcss5-right">right浮動</div> 
  4. </div> 

清除浮動前截圖
清除浮動前案例截圖父級需要清除浮動

以下DIVCSS5總結了幾點用於清除浮動的經驗教程

1、對父級設置適合CSS高度
對父級設置適合高度樣式清除浮動,這裏對“.divcss5”設置一定高度即可,一般設置高度需要能確定內容高度才能設置。這裏我們知道內容高度是100PX+上下邊框爲2px,這樣具體父級高度爲102px

CSS代碼:

  1. .divcss5{ width:400px;border:1px solid #F00;background:#FF0; height:102px} 
  2. .divcss5-left,.divcss5-right{width:180px;height:100px; 
  3. border:1px solid #00F;background:#FFF} 
  4. .divcss5-left{ float:left} 
  5. .divcss5-right{ float:right} 

Html代碼不變。得到截圖

CSS高度設置清除浮動法
使用height高度清除浮動

小結,使用設置高度樣式,清除浮動產生,前提是對象內容高度要能確定並能計算好。

2、clear:both清除浮動
爲了統一樣式,我們新建一個樣式選擇器CSS命名爲“.clear”,並且對應選擇器樣式爲“clear:both”,然後我們在父級“</div>”結束前加此div引入“class="clear"”樣式。這樣即可清除浮動。

具體CSS代碼:

  1. .divcss5{ width:400px;border:1px solid #F00;background:#FF0} 
  2. .divcss5-left,.divcss5-right{width:180px;height:100px; 
  3. border:1px solid #00F;background:#FFF} 
  4. .divcss5-left{ float:left} 
  5. .divcss5-right{ float:right} 
  6. .clear{ clear:both} 

Html代碼:

  1. <div class="divcss5"> 
  2.     <div class="divcss5-left">left浮動</div> 
  3.     <div class="divcss5-right">right浮動</div> 
  4.     <div class="clear"></div> 
  5. </div> 

clear清除浮動截圖

clear清除浮動截圖
clear清除浮動截圖 使用CSS clear清除浮動

這個css clear清除float產生浮動,可以不用對父級設置高度 也無需技術父級高度,方便適用,但會多加CSS和HTML標籤。

3、父級div定義 overflow:hidden
對父級CSS選擇器加overflow:hidden樣式,可以清除父級內使用float產生浮動。優點是可以很少CSS代碼即可解決浮動產生。

overflow:hidden解決CSS代碼:

  1. .divcss5{ width:400px;border:1px solid #F00;background:#FF0; overflow:hidden} 
  2. .divcss5-left,.divcss5-right{width:180px;height:100px; border:1px solid #00F;background:#FFF} 
  3. .divcss5-left{ float:left} 
  4. .divcss5-right{ float:right} 

HTML代碼不變。

解決清除浮動後截圖

css overflow清除浮動截圖
overflow清除float產生浮動截圖 overflow:hidden清除浮動截圖

爲什麼加入overflow:hidden即可清除浮動呢?那是因爲overflow:hidden屬性相當於是讓父級緊貼內容,這樣即可緊貼其對象內內容(包括使用float的div盒子),從而實現了清除浮動。Css overflow:hidden清除浮動方法DIVCSS5推薦使用。

以上三點即是兼容各大瀏覽器清除浮動的方法,其它有的瀏覽器不兼容有的不兼容的方法就沒必要介紹了,大家記住以上三點解決float浮動清除浮動方法。但這裏推薦第三點和第二點解決清除浮動方法。

如需轉載,請註明文章出處和來源網址:http://www.divcss5.com/jiqiao/j406.shtml


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