經過一個demo測試這三個屬性的差異。測試
說明:3d
scrollWidth:對象的實際內容的寬度,不包邊線寬度,會隨對象中內容超過可視區後而變大。
clientWidth:對象內容的可視區的寬度,不包滾動條等邊線,會隨對象顯示大小的變化而改變。
offsetWidth:對象總體的實際寬度,包滾動條等邊線,會隨對象顯示大小的變化而改變。cdn
該demo就在頁面中放一個textarea元素,採用默認寬高顯示。對象
狀況1:blog
元素內無內容或者內容不超過可視區,滾動不出現或不可用的狀況下。it
scrollWidth=clientWidth,二者皆爲內容可視區的寬度。io
offsetWidth爲元素的實際寬度。class
狀況2:cli
元素的內容超過可視區,滾動條出現和可用的狀況下。lazyload
scrollWidth>clientWidth。
scrollWidth爲實際內容的寬度。
clientWidth是內容可視區的寬度。
offsetWidth是元素的實際寬度。
以上。