首頁 > web前端 > css教學 > `offsetWidth`、`clientWidth` 和 `scrollWidth` (以及它們的對應高度)之間有什麼區別?

`offsetWidth`、`clientWidth` 和 `scrollWidth` (以及它們的對應高度)之間有什麼區別?

Barbara Streisand
發布: 2024-12-27 09:19:13
原創
374 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板