前端开发必知:offsetWidth、clientWidth、scrollWidth三者有何区别?

3 min read

这三个属性都是用来获取一个元素的宽度的属性。

  • offsetWidth:包括元素的宽度、水平内边距、垂直滚动条(如果有)、边框和垂直内边距在内的整个元素的宽度。

  • clientWidth:包括元素的宽度和水平内边距在内的元素的宽度。也就是说这个属性只包含可视部分。

  • scrollWidth:元素的内容超过了它的可视区域时,决定元素滚动条的最小宽度,也就是元素的实际内容的宽度。

简单总结一下:

  • offsetWidth 包含元素在页面中占据的全部空间,包括可见部分和不可见部分;

  • clientWidth 只包含元素的宽度和水平内边距;

  • scrollWidth 是元素的实际内容的宽度,它可能大于或小于 clientWidth。