瀏覽器兼容一直是CSS布局中常見的到的問題,初學(xué)者也因此走入很多誤區(qū),那么通過我的經(jīng)驗(yàn),總結(jié)了2個方法,既可以避免大部分瀏覽器兼容問題。
這2個方法具有以下幾個優(yōu)點(diǎn):
1. 無需使用HACK
2. 簡單有效,一看即會
3. 層次化、模塊化布局
4. 代碼更合理,更易于識別
方法一:解決加內(nèi)外間距造成浮動錯位
我們通常在多欄布局的時候需要使用float 進(jìn)行DIV的浮動,通常我們會寫3個DIV來進(jìn)行3欄布局,我們希望達(dá)到如下效果:

為了達(dá)到這種效果,我們會加上margin 讓欄目直接由間距,另外還要加上邊框,再加上padding讓里面的文字不會緊貼邊框。但是意外的情況發(fā)生了,代碼寫好了,居然出現(xiàn)下面的情況:

第三欄,跑到了下面。 這個并不是你想要的效果。那么我們來分析一下吧。按照一般的思路。整體寬度為800px,,左欄200,中間400,右欄200,這樣看起來很好,但是這幾個欄目中間要有間距,所以你要改一下:左欄190,中間400,右欄190這樣是不是就OK了呢。
但是為了好看,你加上了邊框。但卻忘記了邊框也會增加寬度,另外你增加了欄目的padding:10px; 我暈,那么這樣的實(shí)際寬度就成了:左欄:寬度200-外間距10-內(nèi)間距20-邊框2=168,這樣才不會錯位。但是這樣你不覺得有點(diǎn)復(fù)雜么,或許你需要配一個計(jì)算器。這樣的布局一些瀏覽器顯示會有差距哦。
好了,那么說說我的方法吧。根據(jù)層次劃分,我把布局和顯示分開。 布局就是布局除了寬度、浮動外頂多加個外間距,這樣我就比較容易計(jì)算了。那么我們在布局的欄目里面再加入一個DIV專門用于顯示邊框,內(nèi)外間距等,你可以不需要定義寬度,自適應(yīng)即可。為了便于你記憶,我即興作詩一首:固定寬度要浮動,不加邊框和補(bǔ)丁,里面套個DIV,定義樣式起作用!
方法二:解決內(nèi)浮動元素脫離外層
我們?yōu)榱俗鲆粋€產(chǎn)品目錄或者圖片相冊,使用到了UL,或者N個DIV,進(jìn)行浮動,希望的效果如下:

但是卻事與愿違,最近顯示下面的樣子,外層邊框跑到上面去了:

解決這個方法其實(shí)也很簡單,
1. 可以在外層加入一個float:left; 即可解決。
2. 還有一個方法就是在 浮動結(jié)束后最后面放置一個清除浮動的DIV即可。
3. 給外層加上高度或?qū)挾取?/p>