2017-10-16 99 views
2

有下面的代码内部CSS样式定义

<head> 
    <style> 
     body { background-color:green; } 
    </style>    
    </head> 
    <body> 
    <script> 
     alert(document.getElementsByTagName("BODY")[0].style.backgroundColor); 
    </script> 
    </body> 

警报显示无(无结果,空字符串)。 当我将样式定义移动到body标签(<body style="background-color:green">)时,它按预期工作 - 返回“绿色”字符串。为什么没有获得内部样式(在style标记内)值的工作?

回答

5

元素的.style属性显示由style属性设置的样式,或直接指定给元素属性但不是计算样式(HTMLElement.style)的样式。为了得到,你必须使用Window.getComputedStyle()

var style = window.getComputedStyle(document.getElementsByTagName("BODY")[0]); 
alert(style.backgroundColor) 
+0

因此,在_style_标签内部定义的样式被称为“计算”并拥有它自己的getComputedStyle方法吗? – Mulligun81

+0

@RobertWade'style.background-color'将会是一个语法错误,因为可以通过移除每个'-'并将'-'后面的字符改为大写来完成访问。 –

+0

@ Mulligun81不,'