Firefox getComputedStyle возвращает не вычисленное значение

Я вызываю getComputedStyle для элемента, который определяет left, right а также bottom,

В Chrome это возвращается 'auto' в качестве значения для top но в Firefox это возвращает значение пикселя, однако, если вы посмотрите на инспектора в Firefox top значение не отображается в вычисляемой панели.

Есть ли способ обойти это? Вот скрипка, показывающая проблему http://jsfiddle.net/DEfusion/9NaGD/

2 ответа

Через: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle

В Firefox свойства со значением auto возвращают используемое значение, а не значение auto. Так что если вы примените top:auto; и снизу:0; для элемента с высотой:30px и содержащего его блока высота:100px; при запросе вычисленного стиля для top Firefox вернет top:70px, так как 100px-30px=70px.

Старый вопрос, но я тоже столкнулся с этой проблемой и получил решение, как сказал Prisoner, Firefox работает немного по-другому, так как для некоторых свойств он возвращает использованное значение (оно преобразует auto в пиксели) вместо разрешенного значения. К счастью, начиная с Firefox 19, существует решение под названием getDefaultComputedStyle, поддерживаемое только в Firefox и возвращающее разрешенные значения.

Один из способов сделать это - проверить браузер, использовать getDefaultComputedStyle, если Firefox, иначе использовать getComputedStyle.

Другие вопросы по тегам