首页 > 代码库 > GetStyle By CSS

GetStyle By CSS

  我们知道通过

    document.getElementById("argument"); //argument(元素);

    value = http://www.mamicode.com/argument.style.width;的方式可以轻松获取 或者读写该argument的样式(宽度)。但是我们知道这个属性是在标签中的,那么如果我们argument的样式写在CSS中呢?我们就需要用别的方法来获取它的样式值.那么,我们就要用到

    getComputedStyle("argument",":after") .width  //谷歌、火狐等非IE内核浏览器

    argumet.currentStyle.width  //IE浏览器获取样式

    这两种方法来获取CSS文件中的样式值。那么我们可以通过下面的方法来判别浏览器以及获取并return出我们要的值。

 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <title>GetStyle</title> 7 <meta name="description" content=""> 8 <meta name="keywords" content=""> 9 <link href="" rel="stylesheet">10 <style>11     .box{12         width: 200px;13         background: gray;14     }15 </style>16 </head>17 <body>18     <div class="box" id="box" style="height:200px">19         20     </div>21 </body>22 <script>23     var obox = document.getElementById("box");24     function getStyle (ele,prop) {25         var value;26         if(prop in document.body.style){27             if(window.getComputedStyle){28                 value = http://www.mamicode.com/getComputedStyle(ele,null)[prop];29             }else{30                 value =http://www.mamicode.com/ obox.currentStyle.width;31             }    32         }else{33             value =http://www.mamicode.com/ ele.style[prop];34         }35         value =http://www.mamicode.com/ parseFloat(value);36         return value;37     }38     alert(getStyle(obox,"width"));39     alert(getStyle(obox,"height"));40 </script>41 </html>

    经过网上查询(原文地址:http://blog.163.com/hongshaoguoguo@126/blog/static/180469812013217101436660/)

      了解到getComputedStyle与style的区别

        1、只读与可写
        getComputedStyle方法是只读的,只能获取样式,不能设置;而element.style能读能写。
        2、获取的对象范围
      getComputedStyle方法获取的是最终应用在元素上的所有CSS属性对象(即使没有CSS代码,也会把默认的祖宗八代都显示出来);而  element.style只能获取元素style属性中的Style样式。因此对于一个光秃秃的元素<p>,getComputedStyle方法返回对象中length属性值(如果有)就是190+(据我测试FF:192, IE9:195, Chrome:253, 不同环境结果可能有差异), 而element.style就是0。
            getComputedStyle与currentStyle
      currentStyle是IE浏览器自己的一个属性,其与element.style可以说是近亲,至少在使用形式上类似,element.currentStyle,差别在于element.currentStyle返回的是元素当前应用的最终CSS属性值(包括外链CSS文件,页面中嵌入的<style>属性等)。
因此,从作用上将,getComputedStyle方法与currentStyle属性走的很近,形式上则style与currentStyle走的近。不过,currentStyle属性貌似不支持伪类样式获取,这是与getComputedStyle方法的差异,也是jQuery css()方法无法体现的一点。
            getPropertyValue方法
      getPropertyValue方法可以获取CSS样式申明对象上的属性值(直接属性名称),例如:
        window.getComputedStyle(element, null).getPropertyValue("float");
      用getPropertyValue方法不必可以驼峰书写形式(不支持驼峰写法),例如:style.getPropertyValue("border-top-left-radius");
      兼容性:getPropertyValue方法IE9+以及其他现代浏览器都支持,对于IE6-8有另外一套方案

GetStyle By CSS