Prototype JS中的简单getComputedStyle?

时间:2010-01-13 11:35:09

标签: javascript css prototypejs computed-style

是否有一种简单的跨浏览器方式来获取PrototypeJS中元素的计算样式,而无需检查document.defaultView ...和其他属性? ...所以代码看起来像

var elt = $$('.xyz')[k],
    border = elt.getComputedStyle('border-bottom-width')

PrototypeJs提供了返回计算维度的getDimensions-Width-Height方法,但是无法获得其他计算样式,例如边框,背景等等。

我发现了getComputedStyle的几个独立implementations,但也许有PrototypeJS的补丁/插件可以做到这一点?

2 个答案:

答案 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 中学到的那样,并不总是能够获得跨浏览器的计算字体大小。