是否有一种简单的跨浏览器方式来获取PrototypeJS中元素的计算样式,而无需检查document.defaultView ...和其他属性? ...所以代码看起来像
var elt = $$('.xyz')[k],
border = elt.getComputedStyle('border-bottom-width')
PrototypeJs提供了返回计算维度的getDimensions
,-Width
和-Height
方法,但是无法获得其他计算样式,例如边框,背景等等。
我发现了getComputedStyle的几个独立implementations,但也许有PrototypeJS的补丁/插件可以做到这一点?
答案 0 :(得分:4)
Prototype的getStyle
方法封装了您正在寻找的大多数跨浏览器计算样式工作:
var bgColor = $(element).getStyle('background-color');
来自文档:
此方法查找CSS属性 一个元素是否被应用 内联或样式表。有用 浏览器不一致 关于浮动,不透明度,哪个 返回0之间的值(完全 透明)和1(完全不透明), 位置属性(左,上,右 得到的时候 隐藏的尺寸(宽度或高度) 元件。
但是,此方法不会返回在Internet Explorer< = 8中的样式表中应用的样式,因为它使用getComputedStyle()方法,这是版本8及更低版本的错误方法:http://www.quirksmode.org/dom/w3c_css.html
答案 1 :(得分:1)
不是我知道的。
这可能是因为“获取计算样式”实现是如此不同以至于几乎不可能保证统一结果(这使得它们对于跨浏览器框架无用)。
例如,正如我在 this question 中学到的那样,并不总是能够获得跨浏览器的计算字体大小。