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