CSS兼容要點(diǎn)分析
更新時(shí)間:2006年11月09日 00:00:00 作者:
IE vs FF
CSS 兼容要點(diǎn):
DOCTYPE 影響 CSS 處理
FF: div 設(shè)置 margin-left, margin-right 為 auto 時(shí)已經(jīng)居中, IE 不行
FF: body 設(shè)置 text-align 時(shí), div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可居中
FF: 設(shè)置 padding 后, div 會(huì)增加 height 和 width, 但 IE 不會(huì), 故需要用 !important 多設(shè)一個(gè) height 和 width
FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式
div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內(nèi)容不要換行
cursor: pointer 可以同時(shí)在 IE FF 中顯示游標(biāo)手指狀, hand 僅 IE 可以
FF: 鏈接加邊框和背景色,需設(shè)置 display: block, 同時(shí)設(shè)置 float: left 保證不換行。參照 menubar, 給 a 和 menubar 設(shè)置高度是為了避免底邊顯示錯(cuò)位, 若不設(shè) height, 可以在 menubar 中插入一個(gè)空格XHTML+CSS兼容性解決方案小集
使用XHTML+CSS構(gòu)架好處不少,但也確實(shí)存在一些問題,不論是因?yàn)槭褂貌皇炀氝€是思路不清晰,我就先把一些我遇到的問題寫在下面,省的大家四處找^^
1.在mozilla firefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法:
div{margin:30px!important;margin:28px;}
注意這兩個(gè)margin的順序一定不能寫反,據(jù)阿捷的說法!important這個(gè)屬性IE不能識(shí)別,但別的瀏覽器可以識(shí)別。所以在IE下其實(shí)解釋成這樣:
div{maring:30px;margin:28px}
重復(fù)定義的話按照最后一個(gè)來執(zhí)行,所以不可以只寫margin:XXpx!important;
2.IE5 和IE6的BOX解釋不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的寬度會(huì)被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px,而在IE6和其他瀏覽器上寬度則 是以300px+10px(右填充)+10px(左填充)=320px來計(jì)算的。這時(shí)我們可以做如下修改
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
,關(guān)于這個(gè)/**/是什么我也不太明白,只知道IE5和firefox都支持但I(xiàn)E6不支持,如果有人理解的話,請(qǐng)告訴我一聲,謝了?。海?
3.ul標(biāo)簽在Mozilla中默認(rèn)是有padding值的,而在IE中只有margin有值所以先定義
ul{margin:0;padding:0;}
就能解決大部分問題
4.關(guān)于腳本,在xhtml1.1中不支持language屬性,只需要把代碼改為
<script type="text/javascript">
CSS 兼容要點(diǎn):
DOCTYPE 影響 CSS 處理
FF: div 設(shè)置 margin-left, margin-right 為 auto 時(shí)已經(jīng)居中, IE 不行
FF: body 設(shè)置 text-align 時(shí), div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可居中
FF: 設(shè)置 padding 后, div 會(huì)增加 height 和 width, 但 IE 不會(huì), 故需要用 !important 多設(shè)一個(gè) height 和 width
FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式
div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內(nèi)容不要換行
cursor: pointer 可以同時(shí)在 IE FF 中顯示游標(biāo)手指狀, hand 僅 IE 可以
FF: 鏈接加邊框和背景色,需設(shè)置 display: block, 同時(shí)設(shè)置 float: left 保證不換行。參照 menubar, 給 a 和 menubar 設(shè)置高度是為了避免底邊顯示錯(cuò)位, 若不設(shè) height, 可以在 menubar 中插入一個(gè)空格XHTML+CSS兼容性解決方案小集
使用XHTML+CSS構(gòu)架好處不少,但也確實(shí)存在一些問題,不論是因?yàn)槭褂貌皇炀氝€是思路不清晰,我就先把一些我遇到的問題寫在下面,省的大家四處找^^
1.在mozilla firefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法:
div{margin:30px!important;margin:28px;}
注意這兩個(gè)margin的順序一定不能寫反,據(jù)阿捷的說法!important這個(gè)屬性IE不能識(shí)別,但別的瀏覽器可以識(shí)別。所以在IE下其實(shí)解釋成這樣:
div{maring:30px;margin:28px}
重復(fù)定義的話按照最后一個(gè)來執(zhí)行,所以不可以只寫margin:XXpx!important;
2.IE5 和IE6的BOX解釋不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的寬度會(huì)被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px,而在IE6和其他瀏覽器上寬度則 是以300px+10px(右填充)+10px(左填充)=320px來計(jì)算的。這時(shí)我們可以做如下修改
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
,關(guān)于這個(gè)/**/是什么我也不太明白,只知道IE5和firefox都支持但I(xiàn)E6不支持,如果有人理解的話,請(qǐng)告訴我一聲,謝了?。海?
3.ul標(biāo)簽在Mozilla中默認(rèn)是有padding值的,而在IE中只有margin有值所以先定義
ul{margin:0;padding:0;}
就能解決大部分問題
4.關(guān)于腳本,在xhtml1.1中不支持language屬性,只需要把代碼改為
<script type="text/javascript">
相關(guān)文章
CSS中Float(浮動(dòng))相關(guān)技巧文章
CSS中Float(浮動(dòng))相關(guān)技巧文章...2007-09-09編寫純 CSS 彈出菜單的原理及實(shí)現(xiàn) By shawl.qiu
編寫純 CSS 彈出菜單的原理及實(shí)現(xiàn) By shawl.qiu...2007-03-03Internet Explorer 8 beta 中文版與IE7共存的解決方法
今天安裝了IE8,去微軟網(wǎng)站下載的時(shí)候發(fā)現(xiàn)已經(jīng)提供中文版的beta了,哈哈 發(fā)現(xiàn)IE8沒有傳說中的那么妖魔化,不錯(cuò)的瀏覽器,新增功能不錯(cuò)。2008-05-05標(biāo)準(zhǔn)布局應(yīng)用:顯示/隱藏側(cè)邊欄 [附詳細(xì)注解]
標(biāo)準(zhǔn)布局應(yīng)用:顯示/隱藏側(cè)邊欄 [附詳細(xì)注解]...2006-12-12DIV+CSS網(wǎng)頁另類上下布局的實(shí)例代碼
在論壇里看到一位朋友在問一個(gè)上下2個(gè)內(nèi)容框的,寬度為100%的布局方式,然后自己也就嘗試了一下,發(fā)現(xiàn)了幾個(gè)問題的存在2008-10-10