首页 > 代码库 > document相关的宽高

document相关的宽高

一、client该属性指的是元素的可视部分的宽度和高度,即padding+content

如果没有滚动条,即为元素设定的宽度和高度。如果出现滚动条,滚动条会遮盖元素的宽高,那么该属性就是其本来的宽高减去滚动条的宽高。

1.document.body.clientWidth/document.body.clientHeight

(1)假如没有padding,无滚动,则clientWidth = style.width

(2)假如有padding,无滚动,则cliengWidth = style.width + style.padding*2

(3)假如有padding,有滚动,则clientWidth = style.width + style.padding*2-滚动轴的宽度

2.document.body.clientLeft/document.body.clientTop

这两个返回的是元素周围边框的厚度,如果不指定一个边框挥着不定位该元素,则值为0,

用于读取border的宽度和高度

 

 

二、offset

1.document.body.offsetWidth/document.body.offsetHeight

该属性指的是元素的border+padding+content的宽度和高度

该属性和其内部的内容是否超出元素大小无关,只和本来设定的border,width,height有关。

offsetWidth = clientWidth + clientLeft*2

2.offsetParent

若当前元素的父级元素没有进行CSS定位(absolute或relative),offsetParent为body。

若父级元素有CSS定位,则offsetParent为最近的父级元素。

2.document.body.offsetLeft/document.body.offsetTop

在IE8以上的浏览器以及chrome中:offsetleft = offsetParent的(margin-left+border-left+padding-left)+当前元素的(margin-left)

在firefox中:offsetleft = offsetParent的(margin-left+padding-left)+当前元素的(margin-left)

 

 

三、scroll

1..document.body.scrollWidth/document.body.scrollHeight

document.body的scrollWidth和scrollHeight与div的scrollWidth/scrollHeight有区别

对于document.body的scrollWidth和scrollHeight

(1)给定的宽高小于浏览器的宽高,则scrollWidth/scrollHeight = 浏览器的宽高

(2)给定的宽高大于浏览器的窗口,且内容小于给定的宽高

document.body.scrollWidth = 给定的宽度+其所有的padding*2+margin*2+border*2

document.body.scrollHeight = 给定的高度+其所有的padding*2+margin*2+border*2

(3)给定的宽高大于浏览器的窗口,且内容大于给定的宽高

document.body.scrollWidth = 其内容的宽度+其所有的padding*2+margin*2+border*2

document.body.scrollHeight = 其内容的高度+其所有的padding*2+margin*2+border*2

对于div的scrollWidth/scrollHeight

(1)无滚动轴时:

div.scrollWidth = 给定的宽度 + padding*2

div.scrollscrollHeight = 给定的高度 + padding*2

(2)有滚动轴时

div.scrollWidth = 实际的宽度 + padding*2

div.scrollscrollHeight = 实际的高度 + padding*2

2.document.body.scrollLeft/document.body.scrollTop

该属性是可读写的,指的是当元素其中的内容吃哦出宽高的时候,元素被卷起的高度和宽度。

 

 

document相关的宽高