美文网首页
获取style的兼容方法

获取style的兼容方法

作者: maomizone | 来源:发表于2017-03-18 16:42 被阅读0次

    获取或设置行间样式

    oDiv.style.width

    获取行间/内联/外部样式,无法设置

    IE6-8 :
    • oDiv.currentStyle.width
    • oDiv.currentStyle['width']
    高级浏览器 : window可以省略
    • window.getComputedStyle(oDiv, null).width
    • window.getComputedStyle(oDiv, null)['width']

    width & offsetWidth

    width是css中设置的尺寸,而offsetWidth则是盒子真实的尺寸(边框,padding, maring等)

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    
        <style>
            div{
                width: 200px;
                height: 200px;
                border: 1px solid red;
            }
        </style>
    
        <script>
            window.onload = function(){
                var  div = document.getElementById("div");
                console.log(div.style.width); //只能获取或设置行间样式
                console.log(getComputedStyle(div , null).width);
                console.log(div.offsetWidth);
            }
        </script>
    </head>
    <body>
    <div id="div">
    </div>
    </body>
    </html>
    
    QQ图片20170318162417.png

    定义一个获取style的共通方法 getStyle()

    在之前是运动中使用offset都不正确

     <script>
            function getStyle(obj, attr){
                if(obj.currentStyle){
                    return obj.currentStyle[attr];
                }else{
                    return getComputedStyle(obj, false)[attr];
                }
            }
            window.onload = function(){
                var  div = document.getElementById("div");
                alert(getStyle(div, 'width')); // 200px
            }
        </script>
    

    相关文章

      网友评论

          本文标题:获取style的兼容方法

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