4.11日(rì)音(yīn)訊,≥♦"'清除clear在浮動元素容器(qì)的(de)應用(yòng),在CSS規範中 δ£,浮動定位不(bù)屬于正常的(de)頁面✘&流(pageflow),是(shì)獨立定'♥α♦位的(de)。所以,隻含有(yǒu)浮動元"<素的(de)父容器(qì),在顯示時(shí)不(bù)≥✘考慮子(zǐ)元素的(de)位置,就(jiù∏&&γ)當它們不(bù)存在一(yī)樣。這(zhè)就(ji→$ù)造成了(le)顯示出來(lái),父容器(qì)好(hǎo$∞)像空(kōng)容器(qì)一(yī)樣。σ≥
解決方法:添加空(kōng)元素
經典的(de)解決方法,就(jiù)是(sh§δ₩ì)在浮動元素下(xià)方添加一(yī)個(gè)非浮動元素,這(♥÷♥→zhè)樣一(yī)來(lái),就(jα©♥iù)沒問(wèn)題,能(néng)夠正常顯示了(le)。原理(lǐ$¶)是(shì)父容器(qì)現(xiàn)在必須考慮非浮動子(€δαzǐ)元素的(de)位置,而後者肯定出現(xγ×♣σiàn)在浮動元素下(xià)方,所以顯示出來(lái),父容器ε↑∏(qì)就(jiù)把所有(yǒu)子(zǐ)元素都(dōu)包←ε≠括進去(qù)了(le)。
這(zhè)種方法比較簡單,但(dàn)是(shì)要(y ©¥ ào)在頁面中增加冗餘标簽,違背了(le)語義網的(de)原則™≤。那(nà)麽,有(yǒu)沒有(yǒu)不(bù)修α 改HTML代碼的(de)方法呢(ne)?
最佳解決方法
還(hái)是(shì)回到(dào)方法一 ≤≤¶(yī),能(néng)不(bù)能(néng)通(tōng)過CSS語句添加α'≈子(zǐ)元素呢(ne),這(zhè)樣就(jiù)≠"₩'不(bù)用(yòng)修改HTML代碼了(le)?
回答(dá)是(shì)可(kě)以的(de),我們知(zh×>ī)道(dào)CSS語句中有(yǒu)一(yī)個(gè):✔↑αafter僞選擇符,就(jiù)可(kě)以∞♠在父容器(qì)的(de)尾部自(zì)動創建一(yīλ€)個(gè)子(zǐ)元素,這(zhè)正好(hǎo)符♣≥≠合我們的(de)需要(yào)。
其中的(de)"clearfix"是(shγì)父容器(qì)的(de)class名稱,"×♦™;content:"020"¥← ;"是(shì)在父容器(qì)的(d↑✔×✔e)結尾處放(fàng)一(yī)個(gè)空(kōn§§g)白(bái)字符,"heig§→ht:0;"是(shì)讓這(zhè)個(gè)這(zhè)個(♣ gè)空(kōng)白(bái)字符不(bù)顯示出↓ε→來(lái),"display:bloc↔§k;clear:both;"是(shì)确保這σ★ ®(zhè)個(gè)空(kōng)白(bái)字$↔<φ符是(shì)非浮動的(de)獨立區(qū)塊。
但(dàn)是(shì),
邯鄲網站(zhàn)建設告訴大(dà)家(jiā):after選擇符IE6不(bù)支 ≠持,也(yě)就(jiù)是(shì)說(shuō)上(shàng)面的& (de)這(zhè)段代碼在IE6中無效,這(zhè✔∞)怎麽辦?
我們添加一(yī)條IE6的(de)獨有(yǒu)命令"zoo→₹m:1;"就(jiù)行(xíng)了γ₽(le),這(zhè)條命令的(de)作(zuò)用♣>(yòng)是(shì)激活父元素的(de)"πhasLayout"屬性,讓父元素擁₹₽§有(yǒu)自(zì)己的(de)布局。(它的<∏σ(de)具體(tǐ)含義,請(qǐng)÷≠★參見(jiàn)本文(wén)的(de)附錄。)IE φ6會(huì)讀(dú)取這(zhè)條→®≈命令,其他(tā)浏覽器(qì)則會(huì)直接忽略它。
.clearfix:after{conten×t:"\0020";display: ♣block;height:0;clear:bo≠™πth;}
.clearfix{zoom:1;}