一般浮動(dòng)是什么情況呢?一般是一個(gè)盒子里使用了CSS float浮動(dòng)屬性,導致父級對象盒子不能被撐開(kāi),這樣CSS float浮動(dòng)就產(chǎn)生了。

本來(lái)兩個(gè)黑色對象盒子是在紅色盒子內,因為對兩個(gè)黑色盒子使用了float浮動(dòng),所以?xún)蓚€(gè)黑色盒子產(chǎn)生了浮動(dòng),導致紅色盒子不能撐開(kāi),這樣浮動(dòng)就產(chǎn)生了。
簡(jiǎn)單地說(shuō),浮動(dòng)是因為使用了float:left或float:right或兩者都是有了而產(chǎn)生的浮動(dòng)。
1、背景不能顯示
由于浮動(dòng)產(chǎn)生,如果對父級設置了(CSS background背景)CSS背景顏色或CSS背景圖片,而父級不能被撐開(kāi),所以導致CSS背景不能顯示。
2、邊框不能撐開(kāi)
如上圖中,如果父級設置了CSS邊框屬性(css border),由于子級里使用了float屬性,產(chǎn)生浮動(dòng),父級不能被撐開(kāi),導致邊框不能隨內容而被撐開(kāi)。
3、margin padding設置值不能正確顯示
由于浮動(dòng)導致父級子級之間設置了css padding、css margin屬性的值不能正確表達。特別是上下邊的padding和margin不能正確顯示。
這里DIVCSS5為了統一講解浮動(dòng)解決方法,假設了有三個(gè)盒子對象,一個(gè)父級里包含了兩個(gè)子級,子級一個(gè)使用了float:left屬性,另外一個(gè)子級使用float:right屬性。同時(shí)設置div css border,父級css邊框顏色為紅色,兩個(gè)子級邊框顏色為藍色;父級CSS背景樣式為黃色,兩個(gè)子級背景為白色;父級css width寬度為400px,兩個(gè)子級css寬度均為180px,兩個(gè)子級再設置相同高度100px,父級css height高度暫不設置(通常為實(shí)際css布局時(shí)候這樣父級都不設置高度,而高度是隨內容增加自適應高度)。
父級CSS命名為“.divcss5”對應html標簽使用“<div class="divcss5">”
兩個(gè)子級CSS命名分別為“.divcss5-left”“.divcss5-right”
根據以上描述DIVCSS5給出對應CSS代碼和HTML代碼片段
CSS代碼:
.divcss5{ width:400px; border:1px solid #F00; background:#FF0} .divcss5-left,.divcss5-right{ width:180px; height:100px; border:1px solid #00F; background:#FFF} .divcss5-left{ float:left} .divcss5-right{ float:right}對應html源代碼片段:
<div class="divcss5"> <div class="divcss5-left">left浮動(dòng)</div> <div class="divcss5-right">right浮動(dòng)</div> </div>

以下DIVCSS5總結了幾點(diǎn)用于清除浮動(dòng)的經(jīng)驗教程
1、對父級設置適合CSS高度
對父級設置適合高度樣式清除浮動(dòng),這里對“.divcss5”設置一定高度即可,一般設置高度需要能確定內容高度才能設置。這里我們知道內容高度是100PX+上下邊框為2px,這樣具體父級高度為102px
CSS代碼:
.divcss5{ width:400px;border:1px solid #F00;background:#FF0; height:102px} .divcss5-left,.divcss5-right{width:180px;height:100px; border:1px solid #00F;background:#FFF} .divcss5-left{ float:left} .divcss5-right{ float:right}Html代碼不變。得到截圖

小結,使用設置高度樣式,清除浮動(dòng)產(chǎn)生,前提是對象內容高度要能確定并能計算好。
2、clear:both清除浮動(dòng)
為了統一樣式,我們新建一個(gè)樣式選擇器CSS命名為“.clear”,并且對應選擇器樣式為“clear:both”,然后我們在父級“</div>”結束前加此div引入“class="clear"”樣式。這樣即可清除浮動(dòng)。
具體CSS代碼:
.divcss5{ width:400px;border:1px solid #F00;background:#FF0} .divcss5-left,.divcss5-right{width:180px;height:100px; border:1px solid #00F;background:#FFF} .divcss5-left{ float:left} .divcss5-right{ float:right} .clear{ clear:both}Html代碼:
<div class="divcss5"> <div class="divcss5-left">left浮動(dòng)</div> <div class="divcss5-right">right浮動(dòng)</div> <div class="clear"></div> </div>
clear清除浮動(dòng)截圖

這個(gè)css clear清除float產(chǎn)生浮動(dòng),可以不用對父級設置高度 也無(wú)需技術(shù)父級高度,方便適用,但會(huì )多加CSS和HTML標簽。
3、父級div定義 overflow:hidden
對父級CSS選擇器加overflow:hidden樣式,可以清除父級內使用float產(chǎn)生浮動(dòng)。優(yōu)點(diǎn)是可以很少CSS代碼即可解決浮動(dòng)產(chǎn)生。
overflow:hidden解決CSS代碼:
.divcss5{ width:400px;border:1px solid #F00;background:#FF0; overflow:hidden}
.divcss5-left,.divcss5-right{width:180px;height:100px;
border:1px solid #00F;background:#FFF}.divcss5-left{ float:left}
.divcss5-right{ float:right}
HTML代碼不變。
解決清除浮動(dòng)后截圖

為什么加入overflow:hidden即可清除浮動(dòng)呢?那是因為overflow:hidden屬性相當于是讓父級緊貼內容,這樣即可緊貼其對象內內容(包括使用float的div盒子),從而實(shí)現了清除浮動(dòng)。Css overflow:hidden清除浮動(dòng)方法DIVCSS5推薦使用。
以上三點(diǎn)即是兼容各大瀏覽器清除浮動(dòng)的方法,其它有的瀏覽器不兼容有的不兼容的方法就沒(méi)必要介紹了,大家記住以上三點(diǎn)解決float浮動(dòng)清除浮動(dòng)方法。但這里推薦第三點(diǎn)和第二點(diǎn)解決清除浮動(dòng)方法。
聯(lián)系客服