Получить значение свойства CSS (ширину/высоту) элемента в том виде, в каком оно было задано (в процентах/em/px/и т. д.)

Как можно получить свойство CSS элемента (например, ширину/высоту), как оно было установлено с помощью правил CSS, в каких бы единицах оно ни было установлено (например, проценты/em/px)? (В Google Chrome, желательно без фреймворка).

Использование getComputedStyleвозвращает текущее значение в пикселях, то же самое делает css()в jQuery.

Например:

<div class="b">first</div>
<div id="a" class="a">second</div>

<style>
     div      { width: 100px; }
     x, div#a { width: 50%;   }
     .a       { width: 75%;   }
</style>

При переборе всех элементов divв этом примере я хотел бы иметь возможность получить ширину второго divs как 50% (и первый как 100px).


Инспектор элементов Chrome может отображать значения свойств CSS в том виде, в каком они были установлены, поэтому в Chrome это должно быть возможно.

Chrome element inspector showing property value as they were set


Не точная копиясвязанного вопроса, так как принятый ответ есть простой хак, который производит процентную ширину независимо от того, какая ширина установлена. А в остальном вы должны знать, какой селектор используется для создания активного правила? Как это узнать?

25
задан Qtax 16 March 2012 в 07:07
поделиться