Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript body.style.backgroundColor与window.getComputedStyle(body.getPropertyValue)(';背景色';)之间的差异_Javascript_Html_Css - Fatal编程技术网

Javascript body.style.backgroundColor与window.getComputedStyle(body.getPropertyValue)(';背景色';)之间的差异

Javascript body.style.backgroundColor与window.getComputedStyle(body.getPropertyValue)(';背景色';)之间的差异,javascript,html,css,Javascript,Html,Css,我正在尝试获取身体的背景色,我想知道以下两者之间的区别: body.style.backgroundColor和 window.getComputedStyle(body).getPropertyValue('background-color') 假设var body=document.getElementsByTagName(“body”)[0] 有没有其他方法可以获得背景色?如果有 background-color: red !important; 在.css文件或元素中的任何位置,都将

我正在尝试获取身体的背景色,我想知道以下两者之间的区别:

body.style.backgroundColor

window.getComputedStyle(body).getPropertyValue('background-color')
假设
var body=document.getElementsByTagName(“body”)[0]

有没有其他方法可以获得背景色?

如果有

background-color: red !important;

在.css文件或
元素中的任何位置,都将覆盖内联样式,例如
style=“background color:blue;”“

仅使用
body.style.backgroundColor
将只能感知内联样式是否位于主体上,并为您提供该样式(例如,通过html中的
style
属性应用的样式,或使用JavaScript中的
style
属性应用的样式)。
getComputedStyle
还获取通过
标记中的样式表、从父元素继承的样式以及所有内容应用的样式


简而言之,
body.style.backgroundColor
将获得
style
属性中的背景色(
实际上,
document.body.style.backgroundColor
将只获得像这样的元素的
内联
style
属性

<body style="background-color:red">
但是,使用
document.body.style.backgroundColor
无法读取上面给出的
css
样式。请检查。另外,请使用以下方法检查。

body.style.backgroundColor
window.getComputedStyle(body).getPropertyValue('background-color')
直接在元素上设置,或返回通过样式属性或属性设置的相关样式属性的当前值。用户代理在确定应用时如何显示元素(如果有)时会考虑这些值

元素的样式对象不一定反映通过CSS规则应用于元素的值,尽管它们可能相同(偶然或故意将两者设置为相同的值)

中列出了将样式规则应用于元素的顺序。直接应用于元素的规则的优先级仅次于
!important
声明

使用:

window.getComputedStyle(body).getPropertyValue('background-color')
基本上,它返回用于根据CSS规则显示元素的当前样式属性值,即实际应用于元素的内容


这通常与相关样式特性的值不同(除非由特性或属性设置,否则没有值).

所以,为了获得实际的当前样式,我应该使用getComputedStyle,对吗?是的,如果你想这样做的话。但是,并不是所有正在使用的浏览器都支持它,请检查兼容性表。@HommerSmith我知道这个答案是几年后的事了,但我刚刚遇到了一个与你的问题相关的问题,我可以在Firefox和Chrome中告诉你获取CSS v实际应用的值我必须使用getComputedStyle(,null).backgroundColor,因为.style.backgroundColor根本不起作用。我一直在学习Lynda JavaScript Essential Training(2011年)有了西蒙·阿勒迪…从那以后有点变化了,哈哈。你能看看答案并接受/支持任何好的答案吗?这个问题已经在这里10天了,有3个答案