Prototype JS 中的简单 getCompulatedStyle?

发布于 2024-08-17 08:07:16 字数 538 浏览 10 评论 0原文

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

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

PrototypeJs 提供了返回计算getDimensions-Width-Height 方法> 尺寸,但无法获得其他计算样式,例如边框、背景等。

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

Is there an easy cross-browser way to get computed style of an element in PrototypeJS, without checking document.defaultView... and other properties? ...so that the code looked like

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

PrototypeJs provides getDimensions, -Width, and -Height methods that return computed dimensions, but there's no way to get other computed styles, like borders, backgrounds, etc.

I've found several stand-alone implementations of getComputedStyle, but maybe there's a patch/plugin for PrototypeJS that does that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒绊 2024-08-24 08:07:16

Prototype 的 getStyle 方法封装了大部分跨浏览器计算您正在寻找的风格作品:

var bgColor = $(element).getStyle('background-color');

来自文档:

此方法查找 CSS 属性
元素是否被应用
内联或样式表中。有用
围绕浏览器不一致
关于浮动、不透明度,其中
返回 0 之间的值(完全
透明)和 1(完全不透明),
位置属性(左、上、右
和底部)并且当得到
隐藏的尺寸(宽度或高度)
元素。

但是,此方法不会返回 Internet Explorer <= 8 中样式表中应用的样式,因为它使用 getCompulatedStyle() 方法,这对于版本 8 及更低版本来说是不正确的方法: http://www.quirksmode.org/dom/w3c_css.html

Prototype's getStyle method encapsulates most of the cross-browser computed style work you're looking for:

var bgColor = $(element).getStyle('background-color');

From the docs:

This method looks up the CSS property
of an element whether it was applied
inline or in a stylesheet. It works
around browser inconsistencies
regarding float, opacity, which
returns a value between 0 (fully
transparent) and 1 (fully opaque),
position properties (left, top, right
and bottom) and when getting the
dimensions (width or height) of hidden
elements.

However, this method will not return styles applied in a stylesheet in Internet Explorer <= 8, because it uses the getComputedStyle() method, which is the incorrect method for versions 8 and lower: http://www.quirksmode.org/dom/w3c_css.html

丑疤怪 2024-08-24 08:07:16

据我所知没有。

这可能是因为“获取计算样式”实现如此不同,以至于几乎不可能保证统一的结果(这使得它们对于跨浏览器框架毫无用处)。

例如,正如我在 这个问题

Not that I know of.

This is probably because the "get computed style" implementations are so different that it's hardly possible to guarantee uniform results (Which renders them useless for a cross-browser framework).

For example, getting the computed font size cross-browser is not always possible, as I learned in this question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文