繁体   English   中英

为什么javascript样式属性不能按预期工作?

[英]Why does the javascript style property not work as expected?

<html>
   <head>
       <style type="text/css">
       #wow{
          border : 10px solid red;
          width: 20px;
          height: 20px;

       }
       </style>
   </head>
   <body>
      <div id="wow"></div>
      <script>
        var val = document.getElementById("wow");
        alert(val.style.length);
      </script>
   </body>
</html>

这是我的代码,为什么val.style.length 0? 因为我定义了3个属性,我希望它是3

元素的style属性仅反映内联样式。 它本质上是一种获取(并确实设置)内联样式的方法。

来自MDN

[ style属性]对于一般地学习元素的样式没有用,因为它只表示元素的内联样式属性中设置的CSS声明,而不是来自其他地方的样式规则的那些,例如节中的样式规则,或者外部样式表。

您可以使用window.getComputedStyle(element)获取应用于元素的所有样式:

alert(window.getComputedStyle(val).length);

但是,这可能不会达到您想要的效果,因为它提供了元素上的所有样式属性,即使它们仍然是默认属性。 在我的浏览器(Chrome,FWIW)中,这意味着它总是返回285 这不应该是一个惊喜。 浏览器有一个“内置”样式表,毕竟它提供了所有元素的默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM