剛開始學(xué)CSS+div布局的同學(xué)們,都比較困惑和難寫的就是兼容性的問題了,特別是ie6等低版本的瀏覽器,隨意國內(nèi)逐步慢慢消失取代,但是現(xiàn)階段還是會有點考慮因素再里面。我們寫的網(wǎng)頁布局怎么樣才是合理的,完整的,兼容性好的呢?因此再這里,小強(qiáng)老師給大家列出網(wǎng)頁布局標(biāo)準(zhǔn)性、合理性和兼容性的一些方法,希望對剛開始學(xué)習(xí)css的同學(xué)有所幫助。
位于文檔的最前面,用于向瀏覽器說明當(dāng)前文檔使用哪種HTML或XHTML標(biāo)準(zhǔn)規(guī)范,我們必需在開頭處使用<!DOCTYPE>標(biāo)記為所有的XHTML文檔指定XHTML版本和類型,只有這樣瀏覽器才能將該網(wǎng)頁作為有效的XHTML文檔,并按指定的文檔類型進(jìn)行解析。<!DOCTYPE>標(biāo)記和瀏覽器的兼容性相關(guān),刪除<!DOCTYPE>,就是把如何展示HTML頁面的權(quán)利交給瀏覽器,這時,IE6,IE7,IE8,Firefox2,F(xiàn)irefox3,Chrome,有多少種瀏覽器,頁面就有可能有多少中顯示效果,這是不被允許的。
物盡其用人盡其才。再合適的地方用到合理的標(biāo)簽,對網(wǎng)頁布局和優(yōu)化都有很多的好處,比如logo,一般我們都用h1標(biāo)簽包括。還有理解行內(nèi)元素和塊級元素的區(qū)別。一個頁面不要只用div,太多反而太泛濫了。table雖然用的少,但是,再做一些數(shù)據(jù)處理的時候,還是比較好用的。比如下面的,肯定用列表ul了。
我們知道頁面布局的時候,控制盒子位置距離等,有盒子本身大小,padding和margin來做。先看如下圖,再火狐的firebug中看他們?nèi)叩娘@示。因此,再這里我們會根據(jù)穩(wěn)定性來看這三者的先后順序:其中穩(wěn)定性最好的就是盒子本身的高度和寬度了,我們優(yōu)先考慮這個。因此,很多情況下,我們會考慮利用高度剩余法,寬度剩余法來做,而不是padding和margin。比如下圖:
這個評論和下面的文本域框有個小距離,此時,我們給這個評論一個h2標(biāo)簽,高度正好從評論上方,到文本域上的高度就好了,如圖黃色部分所示。
h2里面文字內(nèi)容默認(rèn)是靠左上對齊的,高度用不了,就剩下了,這就是高度剩余法。其次,我們才考慮padding ,因為padding也可以看做特殊的盒子高度和寬度,最后我們再用margin來做。因為margin會有邊距合并的問題。
標(biāo)準(zhǔn)流再里面是最穩(wěn)定的,就是塊級元素上下顯示,行內(nèi)一行顯示,都是最穩(wěn)定的。浮動和定位都“脫標(biāo)”了,穩(wěn)定性沒那么穩(wěn)定,所以,我們應(yīng)該遵循如下原則:頁面布局,能用標(biāo)準(zhǔn)流去做的不用浮動去做,如果要用浮動做的,就不用定位去做。
總會有特殊的瀏覽器,比如ie6 ,這些奇葩瀏覽器總是有自己獨到的地方,那我們怎辦?兵法云,知己知彼百戰(zhàn)百勝,因此,需要我們詳細(xì)的了解這些瀏覽器自己獨特的特性,或者掌握他們IE6常常出現(xiàn)的bug,以及對于css的理解,那么我們根據(jù)他們的不同解析,寫出合理的布局。
html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; }
這句話,大家都知道,清除瀏覽器樣式的。但是如果你不加,不同瀏覽器肯定顯示不太一樣。所以,css的第一句話就是它。還有就是要使用大部分瀏覽支持的css屬性不至于引起不必要的麻煩。
以上幾點,是小強(qiáng)老師,給大家總結(jié)的幾點,希望對新學(xué)習(xí)的同學(xué)有所幫助。
小強(qiáng)零零壹和大家一起分享
新聞熱點
疑難解答