首页 > web前端 > css教程 > `offsetWidth`、`clientWidth` 和 `scrollWidth` (以及它们的对应高度)之间有什么区别?

`offsetWidth`、`clientWidth` 和 `scrollWidth` (以及它们的对应高度)之间有什么区别?

Barbara Streisand
发布: 2024-12-27 09:19:13
原创
380 人浏览过

What's the Difference Between `offsetWidth`, `clientWidth`, and `scrollWidth` (and Their Height Counterparts)?

了解 offsetWidth、clientWidth、scrollWidth 及其对应高度

尽管在 StackOverflow 上进行了大量查询,并且在线信息令人困惑或不准确,但仍要了解其中的复杂性offsetWidth、clientWidth、scrollWidth 及其高度对应项仍然是Challenge.

定义和视觉辅助:

  • offsetWidth、offsetHeight:表示元素视觉框的宽度和高度,包括边界。可以通过宽度/高度、填充和边框求和来计算(对于具有 display: block 的元素)。
  • clientWidth, clientHeight: 表示元素内内容的可见部分,不包括边框和滚动条,但包括填充。不能直接从 CSS 派生,并根据系统的滚动条大小而变化。
  • scrollWidth、scrollHeight: 指示元素内容的总大小,包括滚动区域之外的隐藏部分。也依赖于内容,不能直接从 CSS 计算。

[带有标签尺寸的 CSS2 盒子模型的视觉]

计算滚动条宽度:

由于 offsetWidth 包括滚动条宽度,我们可以使用以下公式计算它公式:

scrollbarWidth = offsetWidth - clientWidth - getComputedStyle().borderLeftWidth - getComputedStyle().borderRightWidth
登录后复制

但是,由于 offsetWidth 和 clientWidth 的整数性质,此方法可能会产生舍入误差,这可能无法反映 1 以外的缩放级别的实际分数尺寸。

其他注意事项:

请注意以下事项公式:

scrollbarWidth = getComputedStyle().width + getComputedStyle().paddingLeft + getComputedStyle().paddingRight - clientWidth
登录后复制

在 Chrome 中无法提供可靠的结果,因为 Chrome 会从报告的宽度中减去滚动条宽度。此外,与其他浏览器不同,Chrome 将 paddingBottom 渲染到滚动内容的底部。

以上是`offsetWidth`、`clientWidth` 和 `scrollWidth` (以及它们的对应高度)之间有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板