1. 程式人生 > >chrome-Firefox-IE瀏覽器兼容總結

chrome-Firefox-IE瀏覽器兼容總結

enter ren ont 標準 距離 tro tac oev turn

作為一名WEB前端程序員,相信每個人對瀏覽器的兼容都"情有獨鐘",下面就一些常用的瀏覽器的兼容列舉一二。

一、塊級元素(block)一般不轉化為inline-block,其實是因為瀏覽器的兼容問題,IE8以下的瀏覽器不 支持塊級元素轉化為行內塊元素(可以使用浮動)。

二.獲取元素樣式:
1.oDiv.style.background:
  獲取到的是行內樣式的屬性
2.獲取顯示的樣式:
  標準瀏覽器(IE9以下是不支持):
    getComputedStyle(標簽元素,false).屬性名
  IE9以下獲取內聯樣式:
    標簽元素.currentStyle.屬性名

  做瀏覽器的兼容:
  if (oDiv.currentStyle) {
    //在IE9以下
    oDiv.currentStyle.width;
  } else {
    //標準瀏覽器
    getComputedStyle(oDiv,false).width;
  }

3.oDiv.offset.width=100;註意:不帶‘px‘,上面兩個獲取的帶‘px‘

三.獲取兄弟節點
  nextSibling,previousSibling
  在高級和IE9以上的瀏覽器裏面,兄弟節點會獲取到空格,在IE8以下,才能獲取到我們想要的元素節點

  previousElementSibling,nextElementSibling
  在高級和IE9以上的瀏覽器裏面,兄弟節點會獲取到對應的元素,在IE8以下,不能獲取到我們想要的元素節點

  var oP1 = oP.previousElementSibling || oP.previousSibling;

四.獲取第一個或最後的兄弟節點
  獲取節點,獲取第一個節點,獲取最後一個節點
  父節點.firstChild;
  父節點.lastChild;
  1.兼容所有的瀏覽器
    oUl.firstElementChild || oUl.firstChild
  2.兼容所有的瀏覽器


    oUl.lastElementChild || oUl.lastChild

五.向上滾動的距離:
  1.在谷歌裏面:
    document.body.scrollTop
  2.在火狐、IE裏面:
    document.documentElement.scrollTop
  3.兼容所有瀏覽器:
    var scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
    var scrollLeft=document.documentElement.scrollLeft || document.body.scrollLeft;

六、事件綁定的兼容
  if (obj.addEventListener) {
    //在高級瀏覽器
    obj.addEventListener(type,fn,false);
  } else {
    obj.attachEvent(‘on‘+type,fn)
  }
  事件移除的兼容
  if (obj.removeEventListener) {
    obj.removeEventListener(type,fn,false);
  } else {
    obj.detachEvent(‘on‘+type,fn);
  }

七、阻止默認事件的兼容
  function(evt) {
    var oEvent = evt || event;
    oEvent.preventDefault && oEvent.preventDefault();
    return false;
  }

八、事件委托兼容
  srcElement: 獲取到事件真正作用的那個元素 (不兼容Firefox,專門用來做IE瀏覽器的兼容)
  target: 獲取到事件真正作用的那個元素 (兼容高級瀏覽器)
  var oLi = oEvent.srcElement || oEvent.target;

  addEvent(‘oUl‘,‘click‘,function(evt){

    var oEvent=evt||event;

    var oLi=oEvent.srcElement||oEvent.target;

  })

chrome-Firefox-IE瀏覽器兼容總結