offsetWidth、clientWidth和scrollWidth区别

作者:Kinglong    发表时间:2023-05-05 05:42   

关键词:  

1.定义

offsetWidth(包含padding、border):元素包含了content可见区域、padding和边框border的宽度。

clientWidth(包含padding):元素可见区域宽度,包含content和padding可见区域在内的宽度,不包含边框border。

scrollWidth:如果有横向滚动条,包含内容区域全部宽度,包括因滚动条存在而隐藏的部分。

网页被滚动条卷去的顶部区域:document.body.scrollTop 
网页被滚动条卷去的左侧区域:document.body.scrollLeft 
元素的顶部偏移量:offsetTop

2.默认盒子模型

box-sizing:content-box

此时:width和height不包含padding和border。

offsetWidth= width + padding + border

clientWidth = width + padding

元素实际内容宽高就是width和height。

3.border-box模型

box-sizing:border-box

此时:width和height含padding和border。

offsetWidth= width

clientWidth =width - border

元素实际内容宽高是width和height减去padding和border。

 

附:

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth(包括边线的宽)
网页可见区域高:document.body.offsetHeight(包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop(窗口相对于屏幕原点的X坐标)

网页正文部分左:window.screenLeft(窗口相对于屏幕原点的Y坐标)
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth