clientWidth/scrollWidth/offsetWidth

转载 2015年11月19日 16:28:46
1.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下
2.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

clientWidth是对象看到的宽度(不含边线)
scrollWidth是对象实际内容的宽度(若无padding,那就是边框之间距离,如有padding,就是左padding和右padding之间距离)。
offsetWidth是指对象自身的宽度,整型,单位像素(含边线,如滚动条的占用的宽,值会随着内容的输入而不断改变)。 


首先,单纯从页面显示的角度来说,
IE和FF的和模型的现实宽度/高度,都等于width+padding+border+margin宽度/高度总和
但是在元素的属性里,FF仍然是本身width属性的宽度,而IE的width属性是width+padding+border+margin宽度/高度总和

另外,偶然得出一个结论,一个box设置了宽度width的数值,那么他的实际上视觉宽度就是width+padding+border,三者之和,也就是说,边框宽度不包括在width之中,所以width设置为100;padding为0;border为10×2,那么视觉宽度就是120px;

3.

总结了一个晚上,通过对IE DevToolbar和Firebug的观察,画出了这两幅图,以区别offsetWidth clientWidth scrollWidth scrollTop scrollLeft等属性的细微差别,希望对各位写js有所帮助!

第一幅图中oEvent是一个时间发生时的一个参数对象,在IE和FF中的获得方法就不用多说了吧。整个 大背景是这个网页的全部尺寸,中间的小框才是浏览器中的可见尺寸。 这幅图就是针对为文档(document)的各个height、width、top、left所做的说明。
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下
4.

第二幅图主要是针对网页中一个div的各个属性值所做的说明。“DIV element client area”是这个div元素的可见区域,“scroll area”是这个div内容原始尺寸,但是由于div的css所设置的高度宽度容不下它的内容,所以出现滚动条。

(页面宽度有限,图片可能不会显示完全,最好新开窗口打开图片)
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

5.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)


网页可见区域宽: 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;
网页正文部分左: window.screenLeft;

屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;

屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解(转载)

作者: 来源: http://bbs.chinaunix.net核心提示:HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth 到底指的哪到哪的距离之...
  • hgyu
  • hgyu
  • 2011年08月18日 20:22
  • 167

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth,offsetLeft等属性介绍

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth  scrollHeight: 获取对象的滚动高度。  scrollLeft:设置或获...

四种浏览器对 clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth 和 scrollWidth 的解释差异

四种浏览器对 clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth 和 scrollWidth 的解释差异 2010-...

HTML精确定位:scrollWidth,clientWidth,offsetWidth等详解

本文并非原创,只是真心觉得好,特别是图解的很到位,我在js中经常会用到,就记下来,与大家分享。 HTML:scrollLeft,scrollWidth,clientWidth,offsetWid...

浏览器窗口操作innerWidth/clientWidth/offsetWidth/scrollWidth

1.常用:JS 获取浏览器窗口大小// 获取窗口宽度 if (windows.innerWidth) winWidth = windows.innerWidth; else if ((docum...
  • alhuo
  • alhuo
  • 2017年01月11日 17:38
  • 202

Web前端之 offsetWidth,clientWidth,scrollWidth,offsetLeft,clientLeft,scrollLeft

浏览器的差异性,是广大开发者所头痛的,虽然这有利于浏览器厂商。所以,清楚地认识到差异,并使用有效的方法去解决就很有必要了,这篇文章就是为了解scrollWidth,clientWidth,offset...

scrollWidth,offsetWidth,clientWidth的本质区别

scrollWidth,offsetWidth,clientWidth的本质区别 1).element.scrollWidth (只读) 总结 scrollWidth是指元素内容的宽度或...

scrollWidth,clientWidth,offsetWidth的区别

通过一个demo测试这三个属性的差别。说明:scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。 clientWidth:对象内容的可视区的宽度,不包滚动条...

width、clientWidth、offsetWidth、scrollWidth、availWidth

width 用于样式表;带单位 .style.width无法返回值offsetWidth 元素内容实际高度 数字 包括滚动条等边线 .offsetWidth = width+padding+bo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:clientWidth/scrollWidth/offsetWidth
举报原因:
原因补充:

(最多只允许输入30个字)