Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2012, 14:04
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Получение вычисленного значения css свойства
Как получить вычисленное значение css свойства? Мне нужно получить значение line-height. В css файле оно задано как normal, и метод css() в некоторых браузерах так и возвращает 'normal', а мне нужно вычисленное значение. Какой метод возвращает вычисленные значения? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2012, 10:37
Интересующийся
Отправить личное сообщение для Greck Посмотреть профиль Найти все сообщения от Greck
 
Регистрация: 27.07.2011
Сообщений: 27

Посмотрите что возвращает:
[window.]document.getElementById("elementID").style.lineHeight


Если так же, то боюсь все плохо. Вычислять высоту строки по формуле:
(высота элемента-паддинг)/количество строк

Не знаю, как-то слишком нетривиально и можно не учесть все моменты, то есть будет глючить. Лучше просто обойтись без этого свойства.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2014, 20:30
Новичок на форуме
Отправить личное сообщение для Sigak Посмотреть профиль Найти все сообщения от Sigak
 
Регистрация: 12.03.2014
Сообщений: 1

Понимаю, что уже 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;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение значения css-свойств demoniqus Общие вопросы Javascript 0 12.02.2012 12:27
получение значения из классов karmis Events/DOM/Window 1 14.10.2011 19:09
Как узнать о поддержке браузером CSS свойства? estoesyo Элементы интерфейса 3 18.10.2010 22:12
Использование css свойства display для подменю Lex4e Общие вопросы Javascript 7 07.01.2010 22:02
Запретить свойства из CSS SunnyDay Общие вопросы Javascript 11 29.09.2008 14:30