我正在尝试获取身体的背景颜色,我想知道它们之间有什么区别:
body.style.backgrounColor
和
window.getComputedStyle(body).getPropertyValue('background-color')
鉴于var body = document.getElementsByTagName("body")[0];
还有其他方法可以获得背景色吗?
答案 0 :(得分:2)
使用:
body.style.backgroundColor
直接在元素上设置style,或返回通过样式属性或属性设置的相关样式属性的当前值。在确定应用CSS rules时如何显示元素时,用户代理会考虑这些值(如果有的话)。
元素的样式对象不一定反映通过CSS规则应用于元素的值,尽管它们可能是相同的(偶然或故意将两者都设置为相同的值)。
CSS2.1 spec中列出了样式规则应用于元素的顺序。在!important
声明之后,直接应用于元素的规则具有第二高的优先级。
使用:
window.getComputedStyle(body).getPropertyValue('background-color')
在DOM Level 2规范中描述。基本上,它返回当前样式属性值,用于显示基于CSS规则的元素,即实际应用于元素的内容。
这通常与相关样式属性的值不同(除非由属性或属性设置,否则没有值)。
答案 1 :(得分:0)
只使用body.style.backgroundColor
只能感知内联样式是否在主体上并为您提供(例如,通过html中的style
属性应用的样式或使用{{1 JavaScript中的属性)。 style
还会通过getComputedStyle
标记中的样式表,父元素中的继承样式以及所有内容来获取应用于它的样式。
简而言之,<style>
将获得body.style.backgroundColor
属性(style
)中的背景色或通过JavaScript应用,<body style="background-color:red>
也将获得样式来自样式表(getComputedStyle
)
答案 2 :(得分:0)
实际上,document.body.style.backgroundColor
只会获得此类元素的inline
样式property
<body style="background-color:red">
另一方面,window.getComputedStyle
将get
CSS
之后的实际属性和样式应用于元素,例如,可以使用window.getComputedStyle
< / p>
body{
background-color:#fff;
}
但是使用css
无法阅读上面给出的document.body.style.backgroundColor
样式。检查this example。另外,请检查this。
答案 3 :(得分:-1)
如果你有
background-color: red !important;
.css文件或<style>
元素中的任何位置都会覆盖内联样式,例如style="background-color: blue;"