后台位置的计算样式在Chrome中返回0%0%

Computed style of background-position returns 0% 0% in Chrome

本文关键字:Chrome 返回 0%0% 样式 位置 计算 后台      更新时间:2023-09-26

假设我有一个element,我想看看它的background-position:

我这样做:

window.getComputedStyle(element).getPropertyValue('background-position')

如果没有为该element定义属性背景位置,我得到:

0% 0%

然而,如果我决定将background-position设置为0% 0%,我将获得相同的值。

我如何区分这两种情况?我如何才能知道该属性是实际定义的?

编辑:

其他人建议只使用style.getPropertyValue('background-position'),但这只会考虑INLINE值。我还想考虑是否在外部CSS文件中设置了该值。http://dev.w3.org/csswg/cssom/#elementcssinlinestyle

计算值是正确的,因为0% 0%background-position的初始值。(CSS属性总是有一个值——即使只有一个初始值——所以永远不会真正"未定义"。)

getComputedStyle不能告诉你区别,但可以选择假设,例如,背景图像none的背景位置0% 0%可能代表初始值。

要跟踪样式的来源,请尝试非标准的getMatchedCSSRules()(参见window.getComputedStyle():如何放弃具有默认值的属性?)。

Imho,这两种情况之间的唯一区别是在任何浏览器端css解析之前。这意味着您必须调查css字符串,以确定它是否已设置。搜索"background"answers"backgroundposition"作为子字符串,然后找出是否有0或0%的