Получение вычисленного значения css свойства
Как получить вычисленное значение css свойства? Мне нужно получить значение line-height. В css файле оно задано как normal, и метод css() в некоторых браузерах так и возвращает 'normal', а мне нужно вычисленное значение. Какой метод возвращает вычисленные значения? Спасибо.
|
Посмотрите что возвращает:
[window.]document.getElementById("elementID").style.lineHeight Если так же, то боюсь все плохо. Вычислять высоту строки по формуле: (высота элемента-паддинг)/количество строк Не знаю, как-то слишком нетривиально и можно не учесть все моменты, то есть будет глючить. Лучше просто обойтись без этого свойства. |
Понимаю, что уже 100 лет прошло, но может еще кому пригодиться:
"Вычислять высоту строки по формуле..." - самый точный способ. Даже не зная количества строк, можно, например, так: function calculateLineHeight(element) { var p = document.createElement('p'); p.appendChild(document.createTextNode('T')); p.style.padding = '0px'; p.style.visibility = 'hidden'; element.appendChild(p); var h = p.clientHeight; element.removeChild(p); return h; } Если все-таки нужно сделать через метод css(), то погуглив, находим вот это: "normal — межстрочное расстояние вычисляется браузерами исходя из размера шрифта элемента. Как правило, оно равно размеру шрифта или больше его на 20%." Опытным путем вычислено, что IE 11 прибавляет не 20, а около 15%. Получаем следующее: var $p = $('selector'); var h = parseInt($p.css('lineHeight')) || parseFloat($p.css('fontSize')) * 1.15 ^ 0; |
Часовой пояс GMT +3, время: 20:49. |