瀏覽器兼容性一般會(huì)涉及兩個(gè)問(wèn)題:
- 1.是否兼容(如IE)
??一般來(lái)說(shuō)比較成熟的網(wǎng)站會(huì)統(tǒng)計(jì)各瀏覽器所占的百分比。如瀏覽器市場(chǎng)份額。 - 2.兼容到什么程度
一般來(lái)說(shuō)有標(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 - 可以使用。
如何解決瀏覽器兼容問(wèn)題?
- 1.CSS hack(prototype hack)
以inline-block為例:
div{
display: inline-block;
*display: inline;
*zoom: 1;/*IE下特有的可以觸發(fā)IE的BFC*/
}
??通過(guò)在屬性前添加 ‘ * ’,可以讓非IE瀏覽器忽略后面的代碼,但是IE會(huì)忽略 ‘ * ’ ,正常的解析代碼。
通過(guò)添加 ‘ * ’ 解決兼容性這個(gè)方法,在IE6,7有效,其他瀏覽器可以查找。
- 2.通過(guò) CC(條件備注),解決瀏覽器兼容性。此方法在IE6,7,8有效。
<!--[if lte IE 8]>
<link rel="stylesheet" href="xxx.css">此處寫(xiě)IE中修改的樣式
<![endif]-->
??對(duì)非IE瀏覽器來(lái)說(shuō),上面的代碼是注釋?zhuān)坏贗E8及以下(lte)瀏覽器中,會(huì)識(shí)別。
- 3.通過(guò)Javascript
??以hover為例:在IE6,7中,hover只支持a標(biāo)簽,但是不推薦通過(guò)修改html標(biāo)簽來(lái)實(shí)現(xiàn)。所以可以通過(guò)JS來(lái)監(jiān)聽(tīng)事件,從而實(shí)現(xiàn)。
IE的兼容性問(wèn)題,可以在遇到的時(shí)候通過(guò)查詢(xún)、調(diào)試解決。
IE中沒(méi)有開(kāi)發(fā)者工具,IE8開(kāi)始有控制臺(tái)。所以有效的調(diào)試方法:
- border: 1px solid #ccc;
- outline: 1px solid #ccc;
- 在地址欄輸入JS代碼,如: javascript:alert();