• JavaScript的DOM_通过计算后样式来获取


    虽然可以通过 style 来获取单一值的 CSS 样式,但对于复合值的样式信息,就需要通过计算样式来获取。

    DOM2 级样式,window 对象下提供了 getComputedStyle()方法。接受两个参数,需要计算的样式元素,第二个伪类(:hover),如果没有没有伪类,就填 null。

    这种计算样式的获取,不仅仅可以获取到没有设置的默认样式,也可以获取行内,内联和链接(因为不管你在哪里设置CSS,最终会驻留在浏览器的计算样式里)

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById('box'); //获取 box
            var style = window.getComputedStyle(box,null);
            alert(style);                    //[object CSS2Properties],表示计算后的css样式
            alert(style.fontSize);            //结果是计算后的样式,一般表示默认样式和设置后的样式,即如果设置了样式结果是设置后的样式,如果没有设置就是默认的样式
        }
    </script>
    </head>
    <body>
        <div id="box" style="color:#F00; font-size:20px;">测试Div</div>
    </body>

    IE 6,7,8不支持这个 DOM2 级的方法,但有个类似的属性可以使用 currentStyle 属性通过节点调用。

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById('box'); //获取 box
            var style = box.currentStyle;
            alert(style.color);
        }
    </script>
    </head>
    <body>
        <div id="box" style="color:#F00; font-size:20px;">测试Div</div>
    </body>

    做兼容

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById('box'); //获取 box
            var style = window.getComputedStyle ? window.getComputedStyle(box, null) : null || box.currentStyle;
            alert(style.color);                 //颜色在不同的浏览器会有 rgb()格式
            alert(style.fontSize);
            alert(style.border);                 //不同浏览器不同的结果,这个属性被计算之后就不存在了,这个属性不兼容IE6,7,8  最好borderTopColor  这样每个获取
            alert(style.fontFamily);             //计算显示复合的样式值
            alert(box.style.fontFamily);         //
        }
    </script>
    </head>
    <body>
        <div id="box" style="color:#F00; font-size:20px;">测试Div</div>
    </body>
  • 相关阅读:
    一对多关系的应用和XXX_set的用法
    《监控》读后感
    电子工业出版社博文视点Open Party 新年聚会 圆满成功召开
    《OPhone应用开发权威指南》全面上市
    《变革中的思索》连载四:PC的未来之路
    博文视点Open Party 新年大戏盛情邀约
    博文视点Open Party 新年大戏盛情邀约
    职场谍战小说《监控》在广州日报连载
    九星小说《监控》
    2010年厦门商报报导《监控》小说
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4590139.html
Copyright © 2020-2023  润新知