Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 背景位置的计算样式在Chrome中返回0%0%_Javascript_Html_Css - Fatal编程技术网

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。我正在解析站点。为什么需要区分初始值和设置值?