offsetWidth、clientWidth和scrollWidth区别
1.定义
offsetWidth(包含padding、border):元素包含了content可见区域、padding和边框border的宽度。
clientWidth(包含padding):元素可见区域宽度,包含content和padding可见区域在内的宽度,不包含边框border。
scrollWidth:如果有横向滚动条,包含内容区域全部宽度,包括因滚动条存在而隐藏的部分。
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