JS/jQuery之宽高

window和document的区别:

window定义:浏览器中打开的窗口
window对象是可省略的 如:window.alert()== alert()

document:去除菜单栏的window部分,是window对象的一部分如:document.body==window.document,body
浏览器的HTML文档成为document对象

window
在这里插入图片描述

document:
在这里插入图片描述

window.location 与 document.location

一般情况下:document.location===window.location

window相关的宽/高

window.innerHeight/window.innerWidth
window.outerHeight/window.outWidth
在这里插入图片描述

window.outerHeight=window.innerHeight+浏览器到可视区域的高度。
一般:window.innerWidth===window.outerWidth

window.screen有关的宽/高

window.screen.height:屏幕的高度(不变的)
window.screen.width: 屏幕的宽度(不变的)
window.screen.availHeight=window.screen.height-顶部与底部工具栏高度(不变的)
window.screen.availWidth=window.screen.width(因为左右两端没有工具栏,也是不变的)
window.screenTop:浏览器最左边到屏幕左边的距离(变化的)
window.screenLeft:浏览器顶部到屏幕顶部的距离(变化的)

在这里插入图片描述

在这里插入图片描述

document相关的宽/高

一,与client相关的宽高

document.body.clientWidth=可视部分的高度即:padding-left+padding-right+width(如果有滚动条则是元素的原本宽度-滚动条的宽度)
document.body.clientHeight=可视部分的宽度即:padding-top+padding-bottom+height(如果有滚动条则是元素的原本搞度-滚动条的宽度)
document.body.clientLeft=元素的左边框的厚度(一般用来读取元素的border的左宽度)==border-left
document.body.clientTop=元素的上边框的厚度(一般用来读取元素的border的上高度) ==border-top

二,与offset相关的宽高

document.body.offsetWidth=document.body.clientWidth+border-left+boder-right+滚动条宽度(也就是滚动条不影响offsetWidth)
document.body.offsetHeight=document.body.clientHeight+border-top+border-bottom+滚动条宽度(也就是滚动条不影响offsetHeight)

document.body.offsetLeft与document.body.offsetTop是基于offsetparent进行改变的,
offsetparent就是里其最近的定 位元素(position:),如果没有则offsetparent为body。

在ie6/7中:offsetLeft=offsetparent的padding-left+自己的margin-left
在firfox中:offsetLeft=offsetparent的padding-left+margin-left+自己的margin-left
在ie8+/chrom中:offsetLeft=offsetparent的padding-left+margin-left+border-left+自己的margin-left

猜你喜欢

转载自blog.csdn.net/qq_43336475/article/details/84401598