2015-04-22 3 views
2

У меня есть div с установленной высотой.Вычислить высоту div

<div class="foo" style="height:100px;">bar</div> 

Возможно ли найти то, что будет иметь высота div, если высота не была явно задана моим свойством стиля?

Другими словами, я хотел бы найти высоту следующего div без фактического изменения div.

<div class="foo">bar</div> 
+0

Вы используете JQuery? Вы можете получить высоту элемента с помощью jQuery $ ('. Foo'). ExternalHeight(); – jerrylow

+0

нет jquery необходим. см. мой ответ ниже, который использует простое свойство 'clientHeight'. – boombox

ответ

4
var clone = $('.foo').clone(); 
clone.css('height', 'auto'); 
clone.css('visibility', 'hidden'); 

$('body').append(clone); 

console.log(clone.height()); 
+0

Собирался написать это, лучший способ, но я думаю, что значение по умолчанию для высоты - авто; –

+0

@YannChabot, ваше право, обновляя мой ответ. Благодаря! – AmmarCSE

+0

Прохладный, я попробую это. Выглядит отлично! –

-1

Если вы используете JQuery вы можете просто взять высоту с $ (». Таргет-класс). Высота()

+0

Это получает высоту моего div. Он не получает высоту моего div со стилем = height: удаляется 100 пикселей. –

+0

извините, похоже, работает для меня. http://jsbin.com/pikutiqine/1/ может быть что-то мне не хватает –

+0

Вы недопонимаете мой вопрос. См. Ответ @ AmmarCSE. –

1

Используйте clientHeight свойство, чтобы получить внутреннюю высоту элемент. clientHeight эквивалентно css height. Смотрите фрагмент ниже (в первой строке демонстрирует использование clientHeight):

var height = document.getElementsByClassName('foo')[0].clientHeight; 
 

 
document.getElementById('heightOfFoo').innerHTML = height;
<div class="foo">bar</div> 
 

 
<div id="heightOfFoo"></div>

+0

Можете ли вы объяснить, как ваш ответ получает высоту модифицированного div без style = "height: 100px". –

+0

Взгляните на это: https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight. Это часть спецификации объектной модели CSS. – boombox

+0

Я думаю, вы не понимаете мой вопрос. См. Ответ @ AmmarCSE. –

Смежные вопросы