笔者最近在重构组件库的时候,学习大佬们的代码,表示很迷茫,主要是感觉这个XXHeight才在这里见到,然后又出现了另一个XXHeight。感觉有点混淆,所以简单的辨析一下这个几个Height和Width顺便再辨析一下Top和Left。
offset |
client |
scroll |
|---|---|---|
offsetWidth |
clientWidth |
scrollWidth |
offsetHeight |
clientHeight |
scrollHeight |
offsetLeft |
clientLeft |
scrollLeft |
offsetTop |
clientTop |
scrollTop |
Offset相关
offsetTop:子元素距离已定位的父容器的上边距离,不包括子元素与父元素的borderoffsetLeft:子元素距离已定位的父容器的左边距离,不包括子元素与父元素的borderoffsetWidth:元素外尺寸的宽度,是元素内容宽度+内边距+边框,不包括外边距与滚动条offsetHeight:元素外尺寸的高度,是元素内容高度+内边距边框,不包括外边距与滚动条。
Client相关
clientTop:元素的内边距外边缘和边框外边缘的距离,实际就是上边框的厚度。clientLeft:元素的内边距外边缘和边框外边缘的距离,实际上是左边框的厚度。clientWidth:元素尺寸宽度,仅仅表示元素内容宽度,包括内边距,不包括边框。clientHeight:元素尺寸高度,仅仅表示元素内容高度,包括内边距,不包括边框。
Scroll相关
scrollTop:元素滚动条上边已经滚动的高度scrollLeft:元素滚动条左边已经滚动的乱度scrollWidth:内容区域加内边距加上溢出的尺寸scrollHeight:内容区域加内边距加上溢出的尺寸