今天就跟大家聊聊有關(guān)如何在css中清除float,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比德保網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式德保網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋德保地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。
css中清除float的方法是,為父元素設(shè)置【overflow:auto】。設(shè)置之后,內(nèi)容元素會(huì)被修剪,超出元素將不可見(jiàn)。我們還可以通過(guò)增加空標(biāo)簽,或者使用【:after】偽元素來(lái)清除float。
第一種方式:
增加一個(gè)空的標(biāo)簽(div 或 br等都行),通過(guò)clear:both語(yǔ)句消除float對(duì)后面元素的影響。
.main{float:left;}.side{float:right;}.footer
缺點(diǎn):需要加很多無(wú)意義的標(biāo)簽,對(duì)后期維護(hù)不利。如果是小程序,那沒(méi)關(guān)系,但如果是大工程,還是慎用。
第二種方式:使用:after 偽元素
.clearIt { zoom:1; } .clearIt:before; /*加上before可以防止瀏覽器頂部的空白崩潰(就是上一個(gè)div的margin-bottom和下邊的margin-top會(huì)發(fā)生疊加)*/ .clearIt:after { content:"."; display:block; height:0; visibility:hidden; clear:both; } /* display:block 使生成的元素以塊級(jí)元素顯示,占滿(mǎn)剩余空間; height:0 避免生成內(nèi)容破壞原有布局的高度。 visibility:hidden 使生成的內(nèi)容不可見(jiàn),并允許可能被生成內(nèi)容蓋住的內(nèi)容可以進(jìn)行點(diǎn)擊和交互; 通過(guò) content:"."生成內(nèi)容作為最后一個(gè)元素,至于content里面是點(diǎn)還是其他都是可以的,例如oocss里面就有經(jīng)典的 content:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",有些版本可能content 里面內(nèi)容為空,一絲冰涼是不推薦這樣做的,firefox直到7.0 content:”" 仍然會(huì)產(chǎn)生額外的空隙; zoom:1 觸發(fā)IE hasLayout。 */
第三種方式:
在父元素設(shè)置 overflow:auto
.main{float:left;}.side{float:right;}.footer
當(dāng)父元素設(shè)置了overflow:auto之后,內(nèi)容元素會(huì)被修剪,超出元素不可見(jiàn)。
這種方式的優(yōu)點(diǎn)是不存在結(jié)構(gòu)和語(yǔ)義化問(wèn)題,代碼量極少。但缺點(diǎn)也很?chē)?yán)重,當(dāng)內(nèi)容增多時(shí)容易因?yàn)椴粫?huì)自動(dòng)換行而導(dǎo)致內(nèi)容被隱藏掉,無(wú)法顯示需要溢出的元素。
其實(shí)只有clear:both是用來(lái)消除float的影響。其它的幾種方式都是通過(guò)隱藏內(nèi)容來(lái)達(dá)到自己的目的。
看完上述內(nèi)容,你們對(duì)如何在css中清除float有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。