У меня проблема с получением точного значения свойства css (в '%') в firefox.
Предположим, что мы имеем эту чрезвычайно простую разметку:
<div id="box">box</div>
и этот css:
#box{
width:200px;
height:200px;
left:10%;
position:absolute;
background:red;
}
и Я хотел бы получить левую позицию (в '%') с помощью js
Это очень легко с mootools (demo → http://jsfiddle.net/steweb/AWdzB/):
var left = $('box').getStyle('left');
или jQuery (demo → http://jsfiddle.net/steweb/RaVyU/):
var left = $('#box').css('left');
или простым js (demo → http://jsfiddle.net/steweb/tUAKA/):
function getStyle(el,styleProp){ //from ppk quirksmode
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
var left = getStyle('box','left');
Но если вы попробуете его на firefox (8.0.1), вы увидите, что результат неверен (должен быть 10%, но 91px). Вопросы: есть ли ошибка в этой более новой версии firefox? Кто-нибудь знает, если это известная ошибка? Я что-то делаю неправильно?
Спасибо:)
Обновление. Я попробовал это также в более старых версиях firefox, и он не корректный (он всегда возвращает значение px).. для полноты, он корректно работает на IE