Javascript 背景位置的计算样式在Chrome中返回0%0%
假设我有一个Javascript 背景位置的计算样式在Chrome中返回0%0%,javascript,html,css,Javascript,Html,Css,假设我有一个元素,我想查看它的背景位置: 我这样做: window.getComputedStyle(element).getPropertyValue('background-position') 如果未为该元素定义属性背景位置,则得到: 0% 0% 但是,如果我决定将背景位置设置为0%0%,我将得到相同的值 我如何区分这两种情况?我怎样才能知道该属性是实际定义的 编辑: 其他人建议只使用style.getPropertyValue('background-position'),但这将只考
元素
,我想查看它的背景位置
:
我这样做:
window.getComputedStyle(element).getPropertyValue('background-position')
如果未为该元素定义属性背景位置,则得到:
0% 0%
但是,如果我决定将背景位置设置为0%0%
,我将得到相同的值
我如何区分这两种情况?我怎样才能知道该属性是实际定义的
编辑:
其他人建议只使用style.getPropertyValue('background-position')
,但这将只考虑内联值。我还想考虑是否在外部CSS文件中设置了该值 Imho,这两种情况之间的唯一区别是在任何浏览器端css解析之前。这意味着您必须对css字符串进行调查,以确定是否设置了css字符串。搜索“背景”和“背景位置”作为子字符串,然后确定是否有0%或0%计算值是正确的。(CSS属性总是有一个值——即使只是一个初始值——因此永远不会真正“未定义”。)
getComputedStyle
无法告诉您差异,但可能会选择假设,例如,背景图像为0%0%
的背景位置none
可能代表初始值
要跟踪样式的来源,请尝试使用非标准的getMatchedCSSRules()
(cf.)。在元素中查找背景位置或背景。样式?您会得到0%0%
,因为它是dafault值。。。也许如果你在css的开头设置了另一个值,那么你可以改变这个。谢谢你的评论,但是如果我想使用computedStyle呢?Danko,这不是我自己的css。我正在解析站点。为什么需要区分初始值和设置值?