У меня проблема с получением точного значения свойства css (в '%') в firefox.
Предположим, у нас есть эта очень простая разметка:
box
и этот 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's 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