清除浮動(dòng)的幾種方法
1. 投機(jī)取巧法
就是直接一個(gè)<div style="clear:both;"></div>放到當(dāng)作最后一個(gè)子標(biāo)簽放到父標(biāo)簽?zāi)莾,此方法屢試不爽,兼容性?qiáng),使用方便,是初學(xué)時(shí)使用的上佳之選。但是我從來(lái)不用,因?yàn)槲铱吹降氖莻(gè)巨大的浪費(fèi),浪費(fèi)了一個(gè)標(biāo)簽,而且只能使用一次,我個(gè)人是無(wú)法容忍的,所以這個(gè)方法不推薦。而且有時(shí)候一不留神中間多了個(gè)空格會(huì)產(chǎn)生一段空白高度的。
2. overflow + zoom方法
.fix{overflow:hidden; zoom:1;}
此方法優(yōu)點(diǎn)在于代碼簡(jiǎn)潔,涵蓋所有瀏覽器,可謂不錯(cuò)的選擇啊。不過(guò)也是有問(wèn)題的,就是這個(gè)overflow:hidden;是個(gè)小炸彈,要是里面的元素要是想來(lái)個(gè)margin負(fù)值定位或是負(fù)的絕對(duì)定位,豈不是直接被裁掉了,所以此方法是有不小的局限性的。我一般不用這個(gè)方法,只是有時(shí)候順便去除浮動(dòng)時(shí)用用。
3. after + zoom方法
先來(lái)簡(jiǎn)單講講after,所謂after,就是指標(biāo)簽的最后一個(gè)子元素的后面。于是呢,我們可以用CSS代碼生成一個(gè)具有clear屬性的元素,其中的關(guān)鍵樣式就是content了。或許您從網(wǎng)上看到的content里面的內(nèi)容是”.”一個(gè)點(diǎn),我了很多次,貌似隨便寫(xiě)什么東西都沒(méi)有問(wèn)題,比如content:'clear both';沒(méi)問(wèn)題,或是content:'佰億'也是ok的。于是有:.clr{zoom:1;}
.clr:after{display:block; content:'clear'; clear:both; line-height:0; visibility:hidden;}
這里的line-height:0寫(xiě)成height:0也是可以的。此方法可以說(shuō)是綜合起來(lái)最好的方法了,我都是用這個(gè)樣式清除浮動(dòng)的,不會(huì)影響任何其他樣式,通用性強(qiáng),覆蓋面廣,我很推薦哦。