Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > получение значения свойств CSS


Автор: demoniqus 15.2.2012, 09:13
Имеется страница. На ней есть к примеру картинка, расположенная на глубине нескольких контейнеров (DIV и TABLE). Мне необходимо получить толщину границы всех этих родительских контейнеров. Для IE подходит
prnt.currentStyle.borderWidth

Для остальных вроде как должно срабатывать
Number(document.defaultView.getComputedStyle(prnt, null).getPropertyValue('border-left-width').replace(/[^\d+]/g, "")) + Number(document.defaultView.getComputedStyle(prnt, null).getPropertyValue('border-right-width').replace(/[^\d+]/g, ""))

Но тут и получается загвоздка:
для одного из контейнеров я для теста установил ширину через border-width (без указания левый-правый) 50рх, для второго 5рх, для третьего 1рх. Пробую на двух браузерах:
Google Chrome: для значения 50рх выдает результат 100рх (т.е. как его и просили, сложил левую и правую границы), для 5рх - результат 10рх, для 1рх - результат 2рх.
Firefox: для значения 50рх выдает результат 50рх (т.е. почему-то он взял лишь половину толщины), для 5рх - результат 5рх (что интересно, для левой границы отдельно он показывал 2рх, а сумму выдал 5рх), для 1рх - результат 1рх.
Визуально в обоих браузерах границы выглядят одинаковой толщины. В чем здесь прикол и как заставить FF правильно считать толщину границы контейнера?

Автор: $дмитрий 15.2.2012, 09:56
Цитата

Мне необходимо получить толщину границы всех этих родительских контейнеров

Можно вычислить разницу между родительским блоком и последним вложеным на основании координат

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)