element.style或window.getComputedStyle()不显示float
我试图将所有元素样式属性复制到另一个元素。 (内联和inheritance)这样做我使用window.getComputedStyle(),但是当我获取所有样式值时, float
值不存在。 我甚至尝试使用element.style并且它不存在。
但是当我使用jQuery.css(’float’)时,我得到了正确的值,所以它确实存在!
你有任何解决方案或聪明的方法吗?
需要考虑的两件事: window.getComputedStyle()
在IE <9( 此处为 docs window.getComputedStyle()
不起作用。 此外,当通过element.style
访问float值时,该属性被命名为cssFloat
因为’float’是JS中的保留字( 此处为 docs)。 在IE <9中,该属性名为styleFloat
。
你的例子通过jQuery工作的原因是因为jQuery在读取计算出的样式时知道固有的浏览器差异,并对它们进行平滑处理,以便您可以通过一致的API访问它们。
element.style
映射到style属性,该属性不考虑inheritance/外部样式。 对于旧的IE,您需要的属性是element.currentStyle
,它将inheritance的样式考虑在内。
如果你需要一个不依赖于jQuery的解决方案,你需要检查window.getComputedStyle()
并使用它(如果存在),并回退到旧IE的element.currentStyle
(使用属性styleFloat
)。
希望有所帮助,欢呼!