瀏覽器兼容性

作web瀏前端,覽器兼容性天然是避免不了了。javascript

1.爲何會出現瀏覽器兼容性?css

瀏覽器種類繁多(內核不同),且相同瀏覽器版本衆多,所以各瀏覽器對標準的實現不太同樣,就致使了對網頁解析的結果不一致。因此就出現了所謂的兼容性問題。html

2.瀏覽器兼容性主要體如今三個方面:html、css、javascript.前端

1)html兼容性。http://i.cnblogs.com/EditPosts.aspx?postid=4756620html5

   瀏覽器渲染引擎對html支持不太同樣。高版本的瀏覽器能夠識別解析(html5)新標籤,低版本瀏覽器沒法識別解析這些新標籤。java

2)JavaScript兼容性jquery

   js自己沒有差別,主要是對dom節點及window對象及其屬性上有差別。比較好的建議是使用第三方js庫,好比jquery等,這些考慮了瀏覽器兼容性,本身能夠少考慮些。web

列出一些常見的js兼容性問題,ajax

2-1)事件綁定時的事件處理函數不一樣。標準實現用的是addEventListener/removeEventListener();IE用的是attachEvent/detachEvent()瀏覽器

2-2)事件流機制不一樣。標準實現爲捕獲--目標--冒泡;ie事件流爲冒泡,也就是不支持捕獲。

2-3)event對象的獲取及對應的屬性不太同樣

   標準中event對象做爲參數傳入,ie中做爲window屬性經過window.event訪問。

  另外就是幾個關鍵屬性不一致。target/srcElement;stopPropagation/cancelBubble=true;

  stopDefault/returnFalse=true;

2-4)ajax實現上有些差別。

  xmlhttp對象的建立不同.標準是new XMLHttpRequest();ie是new ACTIVEXObject(‘MICROSOFT’).

2-5)瀏覽器對獲取DOM節點和子節點的方法的實現不一致。

 

  以上是學習中碰到比較多的js兼容性問題,後續會根據學習狀況不斷補充。

3)css兼容性

css兼容性比較麻煩,對此會有一些專門的技巧。好比css hack,ie的條件註釋,reset.css重置瀏覽器默認屬性值。

 

3-1)

 

3,針對兼容性的解決方案,大體有這些,

 css hack,reset.css,normalize.css,使用框架或引入庫

 

想了解更多兼容性問題,請戳這裏http://www.w3help.org/zh-cn/causes/

相關文章
相關標籤/搜索