我试图获得我的 div 的 scrollHeight 并且我做对了,但是当我在 CSS 中为那个特定的 div 添加 height 属性时,我得到了一个不同的值。
只需运行小提琴,您将在控制台中看到 scrollheight 属性的值等于 268(等于所有孩子的高度之和)
但是当我在 css 中添加一个高度值(比如 height:50px;)时,输出结果为 252(我认为差异是最后一个子元素的边距)。
有人可以回答为什么会有差异吗?
编辑 由于问题不清楚,我改写了 id。当我指定父 div 的高度时,我得到的滚动高度为 252 像素,而如果我没有指定高度或将其设置为“自动”,我得到 268 像素。我只是想知道为什么在后一种情况下边距也不会崩溃?我不担心折叠的边距,只是想知道为什么在这两种情况下滚动高度不同?
下面给出的答案非常好。但是我也使用javascript得到了正确的scrollHeight(包括最后一个孩子的下边距)
var h = $(div).height();
$(div).height("auto");
var ch = $(div)[0].scrollHeight;
$(div).height(h);