【发布时间】:2012-02-07 08:25:02
【问题描述】:
如何获取 Opera 中元素的计算宽度?在其他浏览器中我可以这样做:
// getComputedStyle wrapper
function getStyle(element, styleProp) {
return element.currentStyle ? element.currentStyle[styleProp] :
getComputedStyle(element, null).getPropertyValue(styleProp);
}
...但这仅适用于 Opera。它为很多事情返回“自动”,而不是有用的像素值。
这是一个live demo,它扩展了一些文本以适合一个框。它不适用于 Opera,因为计算出的宽度是 auto 而不是像其他浏览器中的 px 值。
如何在 Opera 中获得更有用的计算样式,例如元素的像素宽度?
我意识到,在这种情况下,我可以使用offsetWidth 而不是获取计算样式。我很欣赏这个建议,但这个问题的真正意义在于我想知道如何在 Opera 中获取计算样式,其中样式实际上是以单位计算的。 就这个问题而言,我不关心 offsetWidth。
【问题讨论】:
-
为什么不使用任何框架来检测不同浏览器的宽度和高度? jQuery 使这个例程变得简单而优雅。只需使用
$(glyph).width()insteedgetStyle(glyph, 'width')jsbin.com/ikatuc/2/edit#javascript,html,live 在 Opera 10.63、IE6-8、Chrome、Firefox 中测试
标签: javascript css opera styling