在我們寫代碼的時(shí)候,有時(shí)因?yàn)槭褂昧薴loat浮動(dòng)元素而導(dǎo)致頁(yè)面中某些元素不能正確的顯示,接下來(lái)在文章中將為大家詳細(xì)介紹幾種清除浮動(dòng)的方法,具有一定的參考價(jià)值,希望對(duì)大家有所幫助。
【推薦課程:CSS課程】
浮動(dòng)導(dǎo)致的后果:
(1)由于浮動(dòng)元素脫離了文檔流,所以父元素的高度無(wú)法被撐開,影響了與父元素同級(jí)的元素
(2)與浮動(dòng)元素同級(jí)的非浮動(dòng)元素會(huì)跟隨其后,因?yàn)楦?dòng)元素脫離文檔流不占據(jù)原來(lái)的位置
(3)如果該浮動(dòng)元素不是第一個(gè)浮動(dòng)元素,則該元素之前的元素也需要浮動(dòng),否則容易影響頁(yè)面的結(jié)構(gòu)顯示
例:在一個(gè)div中設(shè)置三個(gè)div,讓三個(gè)div的來(lái)?yè)伍_父元素
<style> .box{border:1px solid #ccc;background:pink;} .red{width:100px;height:100px;background: red;} .green{width:100px;height:100px;background:green;} .blue{width:100px;height:100px;background: blue;} </style> <body> <div class="box"> <div class="red"></div> <div class="green"></div> <div class="blue"></div> </div>
效果圖:
加了float:left之后,父元素?zé)o法被撐開
清除浮動(dòng)的方法
(1)使用clear:both清除浮動(dòng)
在代碼中在放一個(gè)空的div標(biāo)簽,然后給這個(gè)標(biāo)簽設(shè)置clear:both來(lái)清除浮動(dòng)對(duì)頁(yè)面的影響。它的優(yōu)點(diǎn)是簡(jiǎn)單,方便兼容性好,但是一般情況下不建議使用該方法,因?yàn)闀?huì)造成結(jié)構(gòu)混亂,不利于后期維護(hù)
<div style="clear: both"></div>
(2)利用偽元素clearfix來(lái)清除浮動(dòng)
給父級(jí)元素添加了一個(gè):after偽元素,通過(guò)清除偽元素的浮動(dòng),達(dá)到撐起父元素高度的目的
.clearfix:after{ content:""; display:block; visibility:hidden; clear:both; }
(3)overflow方法的使用
當(dāng)給父元素設(shè)置了overflow樣式,不管是overflow:hidden或overflow:auto都可以清除浮動(dòng)只要它的值不為visible就可以了,它的本質(zhì)就是建構(gòu)了一個(gè)BFC,這樣使得達(dá)到撐起父元素高度的效果
.box{border:1px solid #ccc;background:#eff2f4;overflow: auto}
(4)雙偽元素方法的使用
通過(guò)給父元素設(shè)置雙偽元素來(lái)達(dá)到清除浮動(dòng)的效果
.clearfix:before,.clearfix:after { content: ""; display: block; clear: both; }
總結(jié):
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com