瀏覽器兼容性一般會(huì)涉及兩個(gè)問題:
- 1.是否兼容(如IE)
??一般來說比較成熟的網(wǎng)站會(huì)統(tǒng)計(jì)各瀏覽器所占的百分比。如瀏覽器市場(chǎng)份額嚎花。 - 2.兼容到什么程度
一般來說有標(biāo)準(zhǔn)寸痢。如:
A級(jí)標(biāo)準(zhǔn):chrome - 100%兼容,IE9+ - 90%~100%兼容紊选。
B級(jí)標(biāo)準(zhǔn):IE8 - 能使用啼止,好看,像素偏差5px內(nèi)兵罢。
C級(jí)標(biāo)準(zhǔn):IE7 - 可以使用献烦。
如何解決瀏覽器兼容問題?
- 1.CSS hack(prototype hack)
以inline-block為例:
div{
display: inline-block;
*display: inline;
*zoom: 1;/*IE下特有的可以觸發(fā)IE的BFC*/
}
??通過在屬性前添加 ‘ * ’趣些,可以讓非IE瀏覽器忽略后面的代碼仿荆,但是IE會(huì)忽略 ‘ * ’ ,正常的解析代碼坏平。
通過添加 ‘ * ’ 解決兼容性這個(gè)方法拢操,在IE6,7有效舶替,其他瀏覽器可以查找令境。
- 2.通過 CC(條件備注),解決瀏覽器兼容性顾瞪。此方法在IE6舔庶,7,8有效陈醒。
<!--[if lte IE 8]>
<link rel="stylesheet" href="xxx.css">此處寫IE中修改的樣式
<![endif]-->
??對(duì)非IE瀏覽器來說惕橙,上面的代碼是注釋;但在IE8及以下(lte)瀏覽器中钉跷,會(huì)識(shí)別弥鹦。
- 3.通過Javascript
??以hover為例:在IE6,7中爷辙,hover只支持a標(biāo)簽彬坏,但是不推薦通過修改html標(biāo)簽來實(shí)現(xiàn)。所以可以通過JS來監(jiān)聽事件膝晾,從而實(shí)現(xiàn)栓始。
IE的兼容性問題,可以在遇到的時(shí)候通過查詢血当、調(diào)試解決幻赚。
IE中沒有開發(fā)者工具禀忆,IE8開始有控制臺(tái)。所以有效的調(diào)試方法:
- border: 1px solid #ccc;
- outline: 1px solid #ccc;
- 在地址欄輸入JS代碼坯屿,如: javascript:alert();