兼容

作者: 嘤嘤嘤998 | 来源:发表于2019-02-10 15:32 被阅读0次

    事件绑定

    function addEvent(element, type, handler) {
        if (element.addEventListener) {
             element.addEventListener(type,handler, false);
        } else if (element.attachEvent) {
             element.attachEvent('on' + type,handler);
        } else {
             element['on' + type] = handler;
        }
    }
    

    移除事件

      function removeEvent(element, type, handler) {
           if (element.removeEnentListener) {
                element.removeEnentListener(type,handler, false);
           } else if (element.datachEvent) {
                element.detachEvent('on' + type,handler);
           } else {
                element['on' + type] = null;
           }
      },
    

    阻止事件冒泡

      function stopPropagation(ev) {
           if (ev.stopPropagation) {
                ev.stopPropagation();
           } else {
                ev.cancelBubble = true;
           }
      }
    

    取消事件的默认行为

       function preventDefault(event) {
           if (event.preventDefault) {
                event.preventDefault();
           } else {
                event.returnValue = false;
           }
       }
    

    获取事件target

       function getTarget(event) {
           return event.target || event.srcElement;
       }
    

    获取event对象

      function getEvent (e) {
           var ev = e || window.event;
           if (!ev) {
                var c = this.getEvent.caller;
                while (c) {
                    ev = c.arguments[0];
                    if (ev && Event ==ev.constructor) {
                        break;
                    }
                    c = c.caller;
                 }
            }
           return ev;
      };
    

    获取clientWidth

    document.documentElement.clientWidth || document.body.clientWidth
    
    • png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8.
    • 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。
    • IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。浮动ie产生的双倍距离
     #box{float:left; width:10px; margin:0 10px;}
    //这种情况之下IE会产生20px的距离
    //解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。
    //_这个符号只有ie6会识别
    
    • Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.
    • 超链接访问过后hover样式就不出现了 被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:L-V-H-A : a:link {} a:visited {}a:hover {} a:active {}
      .bb{
    
               background-color:#f1ee18;/*所有识别*/
    
              .background-color:#00deff\9; /*IE6、7、8识别*/
    
              +background-color:#a200ff;/*IE6、7识别*/
    
              _background-color:#1e0bd1;/*IE6识别*/
              }
    

    相关文章

      网友评论

          本文标题:兼容

          本文链接:https://www.haomeiwen.com/subject/gtzteqtx.html