Простой getComputedStyle в прототипе JS? - PullRequest
2 голосов
/ 13 января 2010

Существует ли простой кросс-браузерный способ получения вычисляемого стиля элемента в PrototypeJS без проверки document.defaultView ... и других свойств? ... чтобы код выглядел как

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

PrototypeJs предоставляет методы getDimensions, -Width и -Height, которые возвращают вычисленные измерения, но нет никакого способа получить другие вычисленные стили, такие как границы, фоны и т. Д.

Я нашел несколько автономных реализаций getComputedStyle, но, возможно, есть патч / плагин для PrototypeJS, который это делает?

Ответы [ 2 ]

4 голосов
/ 13 января 2010

Метод прототипа getStyle инкапсулирует большую часть работы в кросс-браузерном стиле, которую вы ищете:

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

Из документов:

Этот метод ищет свойство CSS элемента, был ли он применен встроенный или в таблице стилей. Оно работает вокруг несоответствий браузера относительно плавания, непрозрачности, которая возвращает значение между 0 (полностью прозрачный) и 1 (полностью непрозрачный), свойства позиции (слева, сверху, справа и снизу) и при получении размеры (ширина или высота) скрытого элементы.

Однако этот метод не будет возвращать стили, примененные в таблице стилей в Internet Explorer <= 8, поскольку он использует метод getComputedStyle (), который является неправильным методом для версий 8 и ниже: <a href="http://www.quirksmode.org/dom/w3c_css.html" rel="nofollow noreferrer">http://www.quirksmode.org/dom/w3c_css.html

1 голос
/ 13 января 2010

Не то, что я знаю.

Вероятно, это связано с тем, что реализации "get computed style" настолько отличаются, что вряд ли возможно гарантировать одинаковые результаты (что делает их бесполезными для кросс-браузерной среды).

Например, получение вычисленного размера шрифта кросс-браузером не всегда возможно, как я узнал в этот вопрос .

...