Во-первых, вам нужно знать контекст.
Браузер: Chrome
HTML:
<ul>
<li>
<div>Hi!</div>
</li>
</ul>
CSS:
li {
-webkit-transform: scale(0.21);
-webkit-transform-origin-x: 0%;
-webkit-transform-origin-y: 0%;
}
div {
height: 480px;
width: 640px;
}
Эффективная высота элемента li составляет 101 пикс. Если вы попытаетесь получить высоту в Javascript одним из следующих способов (при условии, что загружен jQuery 1.4.2):
$("li")[0].clientHeight;
$("li")[0].scrollHeight;
$("li").height();
$("li").innerHeight();
вы получите тот же ответ: 480px.
Если навести курсор мыши на элемент с помощью инструментов разработчика Chrome, он покажет вам размеры: 136x101. (На самом деле, первое число, ширина, меняется в зависимости от ширины окна, но это не относится к моему вопросу.) Я не знаю, как Chrome подходит к этому, но я уверен, что хотел бы.
Кто-нибудь знает способ получения высоты элемента после масштабирования, или вам нужно каким-то образом рассчитать его?