一柄沮、浮動(dòng)產(chǎn)生原因
一般浮動(dòng)是什么情況呢?一般是一個(gè)盒子里使用了CSS float浮動(dòng)屬性祖搓,導(dǎo)致父級(jí)對(duì)象盒子不能被撐開,這樣CSS float浮動(dòng)就產(chǎn)生了髓涯。
浮動(dòng)產(chǎn)生樣式效果截圖:
本來兩個(gè)黑色對(duì)象盒子是在紅色盒子內(nèi)哈扮,因?yàn)閷?duì)兩個(gè)黑色盒子使用了float浮動(dòng),所以兩個(gè)黑色盒子產(chǎn)生了浮動(dòng)包各,導(dǎo)致紅色盒子不能撐開靶庙,這樣浮動(dòng)就產(chǎn)生了。
簡單地說,浮動(dòng)是因?yàn)槭褂昧薣float:left]或[float:right]或兩者都是有了而產(chǎn)生的浮動(dòng)矾端。
二卵皂、浮動(dòng)產(chǎn)生負(fù)作用
1、背景不能顯示
由于浮動(dòng)產(chǎn)生灯变,如果對(duì)父級(jí)設(shè)置了([CSS background背景])[CSS背景顏色]或[CSS背景圖片],而父級(jí)不能被撐開滚粟,所以導(dǎo)致[CSS背景]不能顯示刃泌。
2、邊框不能撐開
如上圖中蔬咬,如果父級(jí)設(shè)置了[CSS邊框]屬性([css border]),由于子級(jí)里使用了float屬性林艘,產(chǎn)生浮動(dòng),父級(jí)不能被撐開钢坦,導(dǎo)致邊框不能隨內(nèi)容而被撐開啥酱。
3、margin padding設(shè)置值不能正確顯示
由于浮動(dòng)導(dǎo)致[父級(jí)子級(jí)]之間設(shè)置了css padding镶殷、[css margin]屬性的值不能正確表達(dá)。特別是上下邊的padding和[margin]不能正確顯示颤陶。
三陷遮、css解決浮動(dòng),清除浮動(dòng)方法
這里為了統(tǒng)一講解浮動(dòng)解決方法帽馋,假設(shè)了有三個(gè)盒子對(duì)象比吭,一個(gè)父級(jí)里包含了兩個(gè)子級(jí)姨涡,子級(jí)一個(gè)使用了float:left屬性,另外一個(gè)子級(jí)使用float:right屬性慷彤。同時(shí)設(shè)置[div css ][border]怖喻,父級(jí)css邊框顏色為紅色岁诉,兩個(gè)子級(jí)邊框顏色為藍(lán)色;[父級(jí)]CSS背景樣式為黃色涕癣,兩個(gè)子級(jí)背景為白色;父級(jí)[css width]寬度為400px距潘,兩個(gè)子級(jí)[css寬度]均為180px只搁,兩個(gè)[子級(jí)]再設(shè)置相同[高度]100px,父級(jí)[css height]高度暫不設(shè)置(通常為實(shí)際[css布局]時(shí)候這樣父級(jí)都不設(shè)置高度氢惋,而高度是隨內(nèi)容增加自適應(yīng)高度)。
父級(jí)[CSS命名]為“.divcss5”對(duì)應(yīng)[html標(biāo)簽]使用“<[div] class="divcss5">”
兩個(gè)子級(jí)CSS命名分別為“.divcss5-left”“.divcss5-right”
根據(jù)以上描述DIVCSS5給出對(duì)應(yīng)[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}
對(duì)應(yīng)[html源代碼]片段:
<div class="divcss5">
<div class="divcss5-left">left浮動(dòng)</div>
<div class="divcss5-right">right浮動(dòng)</div>
</div>
清除浮動(dòng)前案例截圖父級(jí)需要清除浮動(dòng)
以下DIVCSS5總結(jié)了幾點(diǎn)用于清除浮動(dòng)的經(jīng)驗(yàn)教程
1骚亿、對(duì)父級(jí)設(shè)置適合CSS高度
對(duì)父級(jí)設(shè)置適合高度樣式清除浮動(dòng)熊赖,這里對(duì)“.divcss5”設(shè)置一定高度即可,一般設(shè)置高度需要能確定內(nèi)容高度才能設(shè)置俱笛。這里我們知道內(nèi)容高度是100PX+上下邊框?yàn)?px足陨,這樣具體父級(jí)高度為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代碼不變。得到截圖:使用height高度清除浮動(dòng)
小結(jié):使用設(shè)置高度樣式星虹,清除浮動(dòng)產(chǎn)生,前提是對(duì)象內(nèi)容高度要能確定并能計(jì)算好宽涌。
2、clear:both清除浮動(dòng)
為了統(tǒng)一樣式忽妒,我們新建一個(gè)樣式選擇器CSS命名為“.clear”兼贸,并且對(duì)應(yīng)選擇器樣式為“clear:both”段直,然后我們?cè)诟讣?jí)“</div>”結(jié)束前加此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)截圖
clear清除浮動(dòng)截圖 使用CSS clear清除浮動(dòng)
這個(gè)css clear清除float產(chǎn)生浮動(dòng),可以不用對(duì)父級(jí)設(shè)置高度 也無需技術(shù)父級(jí)高度枉圃,方便適用,但會(huì)多加CSS和HTML標(biāo)簽孽亲。
3、父級(jí)div定義 overflow:hidden
對(duì)父級(jí)CSS選擇器加overflow:hidden樣式赁酝,可以清除父級(jí)內(nèi)使用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清除float產(chǎn)生浮動(dòng)截圖 overflow:hidden清除浮動(dòng)截圖
為什么加入overflow:hidden即可清除浮動(dòng)呢弃榨?那是因?yàn)閛verflow:hidden屬性相當(dāng)于是讓父級(jí)緊貼內(nèi)容,這樣即可緊貼其對(duì)象內(nèi)內(nèi)容(包括使用float的div盒子)鲸睛,從而實(shí)現(xiàn)了清除浮動(dòng)。Css overflow:hidden清除浮動(dòng)方法DIVCSS5推薦使用箱舞。
以上三點(diǎn)即是兼容各大瀏覽器清除浮動(dòng)的方法,其它有的瀏覽器不兼容有的不兼容的方法就沒必要介紹了晴股,大家記住以上三點(diǎn)解決float浮動(dòng)清除浮動(dòng)方法。但這里推薦第三點(diǎn)和第二點(diǎn)解決清除浮動(dòng)方法电湘。