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.