真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

web開發(fā)中如何清除浮動-創(chuàng)新互聯(lián)

這篇文章主要介紹了web開發(fā)中如何清除浮動,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!

一、浮動

說浮動就必須提及一下文檔流,HTML當(dāng)中的元素按照從左到右,從上到下的順序進(jìn)行排列稱之為文檔流,也就是正常排列。

而浮動是什么呢?浮動會讓元素脫離文檔流,假如A元素浮動了,原本排在該元素之后的元素發(fā)現(xiàn)A元素不在這個文檔流了,就會無視它往上接到A元素前面的元素之后(PS:但是文字并不會無視它,還會環(huán)繞A元素,也就是A元素沒有脫離文字流。

web開發(fā)中如何清除浮動

而如果使用position的絕對定位會連文字流也脫離文檔流。

web開發(fā)中如何清除浮動

浮動的好處當(dāng)然是布局了,例如通過浮動來形成三列布局,文字環(huán)繞等等。但是浮動也有一個問題,那就是會導(dǎo)致高度的塌陷,就像上面的圖片顯示,父元素的高度塌陷了,并沒有將浮動的子元素包裹進(jìn)去,這樣子就會造成布局上的錯誤。

二、BFC

什么是BFC?BFC是Block Formatting Context的縮寫,也就是塊級格式化上下文,創(chuàng)建BFC有以下情況:

float的值不為none。

overflow的值不為visible。

display的值為table-cell, table-caption, inline-block中的任何一個。

position的值不為relative和static。

BFC的特性就是包裹浮動的元素。按照我的理解,當(dāng)你創(chuàng)建BFC之后元素就會把里面的東西視為自己的東西,包括浮動元素,然后創(chuàng)建一個私有領(lǐng)域給包裹進(jìn)來。此外BFC還有還有如下特性。

1.讓原本會疊加的上下外邊距疊加無效。將想要邊距失效的兩個盒子分別放入一個父盒子,然后為父盒子創(chuàng)建BFC。

web開發(fā)中如何清除浮動web開發(fā)中如何清除浮動

2.創(chuàng)建BFC的元素將不會圍繞浮動元素,圖中文字用p標(biāo)簽包裹并創(chuàng)建BFC,右上角浮動元素,可以看見文字并沒有環(huán)繞浮動元素。

web開發(fā)中如何清除浮動

三、 清除浮動的方法

清除浮動方法大致有兩類,一類是clear:both | left | right ,另一類則是創(chuàng)建BFC,細(xì)分又可以分為多種。

1.通過在浮動元素末尾添加一個空的標(biāo)簽例如并設(shè)置樣式為clear:both | left | right ,其他標(biāo)簽br等亦可。

優(yōu)點(diǎn):簡單。

缺點(diǎn):增加了額外的標(biāo)簽,并且很顯然這并不符合語義化。

*使用 br標(biāo)簽和其自身的 html屬性,br 有 clear=all | left | right | none;的屬性。


優(yōu)點(diǎn):簡單代碼量少,比空標(biāo)簽語義化稍好。

缺點(diǎn):增加了額外的標(biāo)簽,并且很顯然這并不符合語義化。

2.使用::after偽元素(萬金油方法)

ps:由于IE6-7不支持:after,使用`zoom:1觸發(fā)hasLayout。其實(shí)是通過 content 在元素的后面生成了內(nèi)容為空的塊級元素

代碼如下:

.clearfix:after {    
    content:"";    
    display:block;    
    height:0;    
    visibility:hidden;//這一條可以省略,證明請看原文精益求精部分
    clear:both; 
}.clearfix {
    zoom:1;
}

優(yōu)點(diǎn):結(jié)構(gòu)和語義化完全正確,代碼量居中。

缺點(diǎn):復(fù)用方式不當(dāng)會造成代碼量增加。

偽元素還有一種寫法:

// 用display:table 是為了避免外邊距margin重疊導(dǎo)致的margin塌陷, 內(nèi)部元素默認(rèn)會成為 table-cell 單元格的形式
.clearfix:before, .clearfix:after {    content:"";    display:table;}
.clearfix:after{    clear:both;    overflow:hidden;}
.clearfix{ zoom:1; }

3.父元素設(shè)置 overflow:hidden,(PS:在IE6中還需要觸發(fā) hasLayout ,例如 zoom:1)

優(yōu)點(diǎn):不存在結(jié)構(gòu)和語義化問題,代碼量極少。

缺點(diǎn):由于hidden的原因,當(dāng)內(nèi)容增多時候容易造成不會自動換行導(dǎo)致內(nèi)容被隱藏掉,無法顯示需要溢出的元素,還會導(dǎo)致中鍵失效(鼠標(biāo)中鍵)。

4.父元素設(shè)置 overflow:auto 屬性

優(yōu)點(diǎn):同上

缺點(diǎn):多個嵌套后,會有bug,詳情看原文。

5.父元素也浮動

優(yōu)點(diǎn):代碼少

缺點(diǎn):總不能一直浮動到body吧。

6.父元素設(shè)置display:table

優(yōu)點(diǎn):結(jié)構(gòu)語義化完全正確,代碼量極少。

缺點(diǎn):會造成盒模型的改變。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享web開發(fā)中如何清除浮動內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)建站,詳細(xì)的解決方法等著你來學(xué)習(xí)!


當(dāng)前名稱:web開發(fā)中如何清除浮動-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/ehisi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部