2013-07-15 82 views
0

我有一个的jsfiddle在这里 - http://jsfiddle.net/stevea/R3z2j/2/ - 在那里我已经在样式表中应用了红色背景的身体,但是当我看到身体的风格节点在DOM与为什么DOM风格节点不显示由样式表应用的样式?

style = document.body.style; 
bgclr = document.body.style.backgroundColor; 

那里什么都没有了背景颜色。

感谢

+4

['getComputedStyle'(https://developer.mozilla.org/en-US/docs/Web/API/window.getComputedStyle)或['currentStyle'](HTTP ://msdn.microsoft.com/en-us/library/ie/ms535231.aspx )(IE8及以上)。 ['element.style'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.style)“*表示元素的'style'属性*,”或元素的内联样式,不是那些它继承的。 –

+0

与DOM属性具有相同名称的DOM属性大多数都反映相同的值。因此,DOM样式对象表示通过样式属性应用的值或通过分配样式对象的属性来设置值。 – RobG

+0

那么JavaScript如何确定当样式表设置颜色时元素的颜色? – Steve

回答

6

要阐述我的意见......

element.style代表元素的样式属性”或元素的自己的风格从style属性或直接操作。

为了获得元素实际使用(包括继承)的样式,你可以在most browsers使用getComputedStyle()(任选getPropertyValue())在过时的歌曲或element.currentStyle

window.getComputedStyle(document.body).backgroundColor 
window.getComputedStyle(document.body).getPropertyValue('background-color') 

document.body.currentStyle.backgroundColor 

或者,因为你使用jQuery,你也可以使用.css(propertyName)

$(document.body).css('background-color'); 
+0

样式对象还表示直接在样式属性上设置的值,而不仅仅是通过属性设置的值(例如* element.style.color *)。 – RobG

+0

@RobG思想“*或元素自己的内联样式*”将覆盖这一点。没那么多?尽管在许多当前的浏览器中,对'element.style'的更改反映在属性中。 –

+0

术语“内联样式”是指标记中的术语,因此它不涵盖由* setAttribute *或样式对象属性设置的值。 – RobG

相关问题