javascript - UL 标签导致 chrome 中出现意外的 clientHeight(或 scrollHeight)
问题描述
我不希望下面的clientHeight和scrollHeight有所不同。有什么我不知道的。我只能保证它们在 chrome 上是不同的。不确定人们在不同浏览器中的体验。
每当我在 chrome 中包含一个 UL 标记时,它都会抛出这些值,无论它放在被测量的包含元素中的什么位置
编辑:他们在 Safari 中报告是平等的。那么我可以假设这是一个错误还是 Safari 错了? 默认情况下,两个浏览器中的边距填充等都是相同的
这个问题与它们之间的区别无关,我在不同的浏览器中得到不同的结果,文档的任何其他答案也不是暗示
在 Safari 中,它们都是 18px,在 Chrome 中,scrollHeight 是 34,clientHeight 是 18
它们不应该都是 34px,或者至少与 Safari 中的 18 相同吗?
泰!
console.log(document.body.clientHeight);
console.log(document.body.scrollHeight);
<ul><li>test</li></ul>
解决方案
似乎是margin-block默认属性<ul>
(您不需要<li>
在里面)影响滚动高度。如果您将 margin-block 设置为零,您应该会看到相同的测量值。
有趣的是,在这个片段中,尺寸仍然相差一个像素,但在 codepen 上测试它显示相同的数字。
console.log(document.body.clientHeight);
console.log(document.body.scrollHeight);
ul {
margin-block-end: 0;
margin-block-start: 0;
}
<ul><li>test</li></ul>
推荐阅读
- java - java `wait()` 等待是如何实现的?
- typescript - 如何使用 Typescript 和 gulp 从多个文件生成单个文件?
- java - 使用 Spring Boot 应用程序在运行时编译类
- r - 在 R 中设置默认值
- javascript - 如何使用 ajax 请求刷新地图?
- javascript - 无法将输入字段中的裁剪图像设置为文件
- ibm-mobilefirst - 使用 UserAuthenticationSecurityCheck 时,IBM MFP 8.0 多个用户 ID 粘在 1 个设备上
- algorithm - 在幺半群的帮助下将二次时间程序变成线性时间程序?
- spring - 在应用程序启动之前运行自定义代码的不同方法
- material-ui - 素材ui头像显示本地图片坏了