W3標(biāo)準(zhǔn)不變 清除浮動(dòng)實(shí)現(xiàn)代碼
發(fā)布時(shí)間:2012-05-27 04:21:16 作者:佚名
我要評(píng)論

對(duì)于日新月異的WEB開發(fā)技術(shù)和瀏覽器更新頻率來說,清除浮動(dòng)已然是一個(gè)被人嚼碎了的話題。說是這些年過去了,有關(guān)float的地方,還依然少不了清除浮動(dòng)的標(biāo)簽和css代碼
W3C整天研究html5,就不能抽出點(diǎn)時(shí)間來把這種煩人的小細(xì)節(jié)修正一下嗎?抱怨歸抱怨,飯還得吃,錢還得掙,清除浮動(dòng)就不能停止。
為了清除浮動(dòng)增加無語義代碼已經(jīng)是最穩(wěn)定和簡(jiǎn)單的方式,但總叫開發(fā)者心里感到不舒服,畢竟這么多年來早已習(xí)慣了結(jié)構(gòu)和樣式的分離,非要在結(jié)構(gòu)中插入這樣一行無語義代碼就會(huì)讓人覺得有種難以掌握的感受。
通過css代碼清除浮動(dòng)也不省油,光是當(dāng)前這種多個(gè)瀏覽器瓜分瀏覽器份額的狀況所帶來的各種css hack就夠讓人頭疼的了,而且這還沒說到那些個(gè)瀏覽器的不同版本之間又有多少的差別。通過css清除浮動(dòng)還是一個(gè)長(zhǎng)期的過程,因?yàn)槟氵€要期盼下一牌瀏覽器沒有針對(duì)浮動(dòng)修改對(duì)html代碼的解釋。
要說在當(dāng)前這種惡劣的狀況下,選取哪種方式去清除浮動(dòng)最為可取,這事一個(gè)人說了不算,要看大家的意見。
很多時(shí)候,開發(fā)人員在前端開發(fā)時(shí)遇到問題,就會(huì)去找那些運(yùn)用了類似技術(shù)的大型網(wǎng)站,去分析它們的解決方案,然后用到自己的網(wǎng)站上,連為什么都省得去想了。我也常常這么做。具體到清除浮動(dòng)這個(gè)問題上,我現(xiàn)在所用的無語義標(biāo)簽法就是在看到某大型網(wǎng)站用過之后,我才選用的。
不過今天重提這個(gè)問題,是因?yàn)槲矣衷谝粋€(gè)大型網(wǎng)站上看到了不同的方案。它們是這樣做的:
<style>
.clearfix:after{
visibility: hidden;
display: block;
font-size: 0;
content: ".";
clear: both;
height: 0;
}
* html .clearfix{zoom: 1;}
*:first-child + html .clearfix{zoom: 1;}
</style>
<div class="clearfix" style="border: 2px solid red;">
<div style="float: left; width: 80px; height: 80px; border: 1px solid blue;">
我的網(wǎng)站
</div>
</div>
雖說這是來自大型網(wǎng)站,可信任度很高,可以不去思考而直接用,但學(xué)習(xí)的態(tài)度還是要有,就此分析一下其中的原理。
1)首先是利用:after偽類來兼容支持這一標(biāo)準(zhǔn)的瀏覽器們,F(xiàn)F、Chrome自然屬于強(qiáng)烈支持標(biāo)準(zhǔn)的瀏覽器行列,不過IE自從繁殖到第八代開始,也表示支持這一偽類。:after偽類用來和content屬性一起使用設(shè)置在對(duì)象后的內(nèi)容。
如果現(xiàn)在不是2012看,而是10年后,可能就不用再往下講了。但因?yàn)楝F(xiàn)在IE6和IE7還很有勢(shì)力,所以,我們還得好好照顧它們。:after偽類IE不支持,它用來和content屬性一起使用設(shè)置在對(duì)象后的內(nèi)容,例如:
.clearfix:after {content:".";}
這個(gè)CSS將會(huì)讓clearfix類標(biāo)簽內(nèi)的文本后邊加上英文句號(hào)。
3)"* html"這個(gè)選擇符只有IE6才能識(shí)別,因此在其中設(shè)置縮放屬性"zoom: 1;",便可實(shí)現(xiàn)兼容IE6;"*:first-child + html"這個(gè)選擇符只有IE7才能識(shí)別,因此設(shè)置縮放屬性"zoom: 1;" 便可實(shí)現(xiàn)兼容IE7。
原理分析完畢。方法是可行的,完美解決是不可能的。所以,W3標(biāo)準(zhǔn)中的浮動(dòng)一天不變,清除浮動(dòng)就會(huì)一天不止。
為了清除浮動(dòng)增加無語義代碼已經(jīng)是最穩(wěn)定和簡(jiǎn)單的方式,但總叫開發(fā)者心里感到不舒服,畢竟這么多年來早已習(xí)慣了結(jié)構(gòu)和樣式的分離,非要在結(jié)構(gòu)中插入這樣一行無語義代碼就會(huì)讓人覺得有種難以掌握的感受。
通過css代碼清除浮動(dòng)也不省油,光是當(dāng)前這種多個(gè)瀏覽器瓜分瀏覽器份額的狀況所帶來的各種css hack就夠讓人頭疼的了,而且這還沒說到那些個(gè)瀏覽器的不同版本之間又有多少的差別。通過css清除浮動(dòng)還是一個(gè)長(zhǎng)期的過程,因?yàn)槟氵€要期盼下一牌瀏覽器沒有針對(duì)浮動(dòng)修改對(duì)html代碼的解釋。
要說在當(dāng)前這種惡劣的狀況下,選取哪種方式去清除浮動(dòng)最為可取,這事一個(gè)人說了不算,要看大家的意見。
很多時(shí)候,開發(fā)人員在前端開發(fā)時(shí)遇到問題,就會(huì)去找那些運(yùn)用了類似技術(shù)的大型網(wǎng)站,去分析它們的解決方案,然后用到自己的網(wǎng)站上,連為什么都省得去想了。我也常常這么做。具體到清除浮動(dòng)這個(gè)問題上,我現(xiàn)在所用的無語義標(biāo)簽法就是在看到某大型網(wǎng)站用過之后,我才選用的。
不過今天重提這個(gè)問題,是因?yàn)槲矣衷谝粋€(gè)大型網(wǎng)站上看到了不同的方案。它們是這樣做的:
復(fù)制代碼
代碼如下:<style>
.clearfix:after{
visibility: hidden;
display: block;
font-size: 0;
content: ".";
clear: both;
height: 0;
}
* html .clearfix{zoom: 1;}
*:first-child + html .clearfix{zoom: 1;}
</style>
<div class="clearfix" style="border: 2px solid red;">
<div style="float: left; width: 80px; height: 80px; border: 1px solid blue;">
我的網(wǎng)站
</div>
</div>
雖說這是來自大型網(wǎng)站,可信任度很高,可以不去思考而直接用,但學(xué)習(xí)的態(tài)度還是要有,就此分析一下其中的原理。
1)首先是利用:after偽類來兼容支持這一標(biāo)準(zhǔn)的瀏覽器們,F(xiàn)F、Chrome自然屬于強(qiáng)烈支持標(biāo)準(zhǔn)的瀏覽器行列,不過IE自從繁殖到第八代開始,也表示支持這一偽類。:after偽類用來和content屬性一起使用設(shè)置在對(duì)象后的內(nèi)容。
如果現(xiàn)在不是2012看,而是10年后,可能就不用再往下講了。但因?yàn)楝F(xiàn)在IE6和IE7還很有勢(shì)力,所以,我們還得好好照顧它們。:after偽類IE不支持,它用來和content屬性一起使用設(shè)置在對(duì)象后的內(nèi)容,例如:
復(fù)制代碼
代碼如下:.clearfix:after {content:".";}
這個(gè)CSS將會(huì)讓clearfix類標(biāo)簽內(nèi)的文本后邊加上英文句號(hào)。
3)"* html"這個(gè)選擇符只有IE6才能識(shí)別,因此在其中設(shè)置縮放屬性"zoom: 1;",便可實(shí)現(xiàn)兼容IE6;"*:first-child + html"這個(gè)選擇符只有IE7才能識(shí)別,因此設(shè)置縮放屬性"zoom: 1;" 便可實(shí)現(xiàn)兼容IE7。
原理分析完畢。方法是可行的,完美解決是不可能的。所以,W3標(biāo)準(zhǔn)中的浮動(dòng)一天不變,清除浮動(dòng)就會(huì)一天不止。
相關(guān)文章
AudioContext 實(shí)現(xiàn)音頻可視化(web技術(shù)分享)
這篇文章主要分享的是web技術(shù)的 AudioContext 實(shí)現(xiàn)音頻可視化,要實(shí)現(xiàn)音頻可視化得先實(shí)現(xiàn)一些炫酷的效果需要借助 Web Audio API提供的一些方法 AudioContext,下面詳細(xì)內(nèi)容2022-02-23- 這篇文章主要給大家介紹了web技術(shù)中的WebRTC記錄音視頻流,文章內(nèi)容圍繞主題展相關(guān)資料,需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-02-23
- 這是我通過網(wǎng)上查閱資料總結(jié)的一些編碼規(guī)范,用于鞏固對(duì)html,css頁面重構(gòu)時(shí)的基礎(chǔ),需要的朋友可以參考下2020-12-19
前端編碼規(guī)范(4)—— CSS 和 Sass (SCSS) 開發(fā)規(guī)范
這篇文章主要介紹了前端編碼規(guī)范(4)—— CSS 和 Sass (SCSS) 開發(fā)規(guī)范,需要的朋友可以參考下2017-01-21Web前端開發(fā)規(guī)范2017(HTML/JavaScript/CSS)
這是一份旨在增強(qiáng)團(tuán)隊(duì)的開發(fā)協(xié)作,提高代碼質(zhì)量和打造開發(fā)基石的編碼風(fēng)格規(guī)范,其中包含了 HTML, JavaScript 和 CSS/SCSS 這幾個(gè)部分。我們知道,當(dāng)一個(gè)團(tuán)隊(duì)開始指定并實(shí)行2017-01-21- 這篇文章主要為大家介紹了前端開發(fā)團(tuán)隊(duì)遵循和約定的代碼書寫規(guī)范,意在提高代碼的規(guī)范性和可維護(hù)性,需要的朋友可以參考下2017-01-21
響應(yīng)式Web之流式網(wǎng)格系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了響應(yīng)式Web之流式網(wǎng)格系統(tǒng)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-04在網(wǎng)頁標(biāo)題欄上和收藏夾顯示網(wǎng)站logo的實(shí)現(xiàn)方法
下面小編就為大家分享一篇在網(wǎng)頁標(biāo)題欄上和收藏夾顯示網(wǎng)站logo的實(shí)現(xiàn)方法。希望對(duì)大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-03-16Visual Foxpro 6.0 中文版安裝向?qū)?圖解)
基于很多用戶都在下載Visual Foxpro 6.0,但是有安裝vtp6.0經(jīng)驗(yàn)的朋友確很少,在安裝過程中總會(huì)出現(xiàn)這樣那樣的問題,基于這些問題,下面小編抽個(gè)時(shí)間把Visual Foxpro 6.02015-09-09網(wǎng)站日志200 0 64狀態(tài)碼的分析(協(xié)議子狀態(tài))
網(wǎng)站日志200 0 64狀態(tài)碼的分析介紹2012-10-29