Извлечение процентных значений CSS (в firefox)

У меня проблема с получением точного значения свойства 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

10
задан easwee 6 January 2015 в 09:44
поделиться