【发布时间】:2019-11-27 17:59:22
【问题描述】:
我有一个 div,其中包含一张图片和一些文本(图像的大小可变,文本的长度可变)。
鉴于预先定义了确切的宽度,有没有办法计算适合所有 div 内容所需的高度?
UPD 在使用$(document).ready() 时得到同样的错误结果
document.addEventListener("DOMContentLoaded", function ()
{
var div = document.getElementById("Content");
var res = document.getElementById("Result");
res.innerHTML = div.offsetHeight; // incorrect - returns 252 while the real height is 360 (Firefox, Chrome)
});
div
{
width: 400px;
}
img
{
float: left;
margin: 0.5em;
}
<div id="Content">
<img src="https://picsum.photos/id/82/200/150" />
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Orci phasellus egestas tellus rutrum. Tempor nec feugiat nisl pretium fusce. Cras pulvinar mattis nunc sed blandit libero volutpat sed cras. Purus sit amet luctus venenatis lectus magna fringilla urna. Ut tristique et egestas quis. Mauris cursus mattis molestie a iaculis at erat pellentesque adipiscing. Iaculis eu non diam phasellus vestibulum lorem sed risus ultricies. Semper quis lectus nulla at. Augue interdum velit euismod in. Amet aliquam id diam maecenas ultricies mi eget. Scelerisque viverra mauris in aliquam sem fringilla ut morbi. Et egestas quis ipsum suspendisse. Et malesuada fames ac turpis. Fermentum iaculis eu non diam phasellus vestibulum lorem sed.
</div>
<br/>
<span id="Result"></span>
【问题讨论】:
-
@Rob 这不是一个合法的问题,是什么使它脱离主题?
-
你想要javascript方式还是纯css?
-
@Bobtroopo JS 会很好。
-
AFAIK 在图像加载之前您无法获得正确的高度,因为您不知道图像大小。所以我认为你只能在图像加载后获得正确的值,使用
onload然后在回调中获取高度 -
Jquery 好吗?
标签: javascript css