css - 当使用inline-block和DOCTYPE html时,为什么scrollHeight比offsetHeight大?

标签 css html

我们将 HTML 应用程序从 DOCTYPE XTHML 1.0 迁移到 DOCTYPE HTML。 我们看到在某些DIV中出现了垂直滚动。

这些 DIV 的布局类似于:
CSS

#scrollContainer,
#overflowedNode 
{
    height: 100px;
    width: 200px;
}

#overflowedNode 
{
    display: inline-block
}

HTML

<div id="scrollContainer">
    <div id="overflowedNode"></div>
</div>

在本例中,ID 为“scrollContainer”的 DIV 具有计算出的高度:

offsetHeight = 100;
scrollHeight = 105;

我认为会出现垂直滚动,因为高度差异为 5 个像素。 但是,如果您向 id 为“overflowedNode”的 DIV 中的内容添加至少一个字母,则scrollHeight 将等于offsetHeight。

为什么offsetHeight和scrollHeight到5px之间存在差异以及如何修复它?

重现示例: https://jsfiddle.net/yaznayka/204qntjh/5/

最佳答案

我想知道同样的事情...所以我做了一个小测试...我确保没有任何东西有边距...好吧,李做到了..所以我把它取下来,最后滚动高度,偏移高度和客户端高度是相同....然后我添加了 10 px 边距...并且减少了 10 px(这很令人困惑,因为我有 20 li 的...所以我假设除了偏移高度...但它不是...它就像只计算第一个...真的很奇怪。

关于css - 当使用inline-block和DOCTYPE html时,为什么scrollHeight比offsetHeight大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518273/

相关文章:

jquery - 脚本未执行

javascript - Bootstrap 字形图标编辑未显示

html - 与文字一致的链接

javascript - 如何在输入字段 "password"中显示文本并在输入后再次切换到密码 View

jquery - 如何旋转 HTML5 Canvas 的背景图像并使用 slider 放大和缩小?

html - 图片在桌面和移动平台上显示不一样

单击按钮时在三个图像之间切换的javascript

javascript - 将表单数据复制到同一页面上的另一个元素

javascript - 如何调用更改事件,例如在 html 数据列表上选择

jquery - 检测 html 表单的 tabindex 的结尾以触发 jQuery 事件