美文网首页
获取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