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个答案