У меня есть несколько сот «строки» элементы, как это:избежать HTML документа перекомпоновки
<div class='row'>
<div class='cell'></div>
<div class='cell'></div>
<div class='cell'></div>
</div>
Мне нужно, чтобы получить их clientHeight после того, как они были предоставлены на странице уже. Я знаю, что свойство «clientHeight» заставляет плавать, и это убивает мою работу, так как их так много. Однако - они уже отображаются, и я знаю, что их размер не меняется между временем их рендеринга и временем, которое я запрашиваю для их высоты.
Есть ли способ сказать браузеру НЕ перепланировать при запросе на высоту? Более того - WebKit инспектор говорит:
Layout tree size 5901
Layout scope Whole document
И дивы находятся в абсолютно позиционированном предке - не только абсолютно позиционирован элемент будет переформатирование?
Edit:
Так ответы, являются правильными. Я был на самом деле засыпывая макет, потому что у меня был этот цикл:
rows.each(function(){
$(this).css('height', this.clientHeight);
});
Изменение кода к этому Устранена проблема:
var heights = rows.map(function(){
return this.clientHeight;
});
rows.each(function(){
$(this).css('height', heights.shift());
});
Одно предложение. Если вы можете сделать свою строку div статичной в начале и получить innerHieght, а затем изменить ее на абсолютную. Или добавляя и удаляя класс, вы можете рассчитать общую сумму ваших узлов. – Khamidulla
Почему вы используете div для моделирования таблицы вместо использования таблицы? –