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;

图解offsetWidth, clientWidth, scrollWidth, innerWidth, outerWidth, pageXOffset等

测试浏览器:ie7~ie11、chrome 和 firefox等。 一、测试1:无滚动条时,offsetWidth、clientWidth和scrollWidth (1)测试代码: Java...
  • lzding
  • lzding
  • 2015年06月05日 07:28
  • 2986

详解clientWidth,scrollWidth,offsetWidth,innerWidth的区别

详解clientWidth,scrollWidth,offsetWidth,innerWidth的区别
  • mr_fzz
  • mr_fzz
  • 2016年11月04日 13:32
  • 2382

offsetWidth、clientWidth、width、scrollWidth区别及js与jQuery获取的方式

offsetWidth、clientWidth、width、scrollWidth区别及js与jQuery获取的方式
  • javaloveiphone
  • javaloveiphone
  • 2016年03月11日 13:36
  • 9924

DOM元素尺寸offsetWidth,scrollWidth,clientWidth等详解

例子:
  • qq_20438233
  • qq_20438233
  • 2015年07月01日 12:21
  • 2298

offsetWidth、clientWidth、scrollWidth、scrollTop

offsetWidth/clientWidth/scrollTop… 题记:offset/client/scroll 这几组属性容易搞混,查了些资料,研究了下,写些心得。 1. 基本概...
  • lidiansheng
  • lidiansheng
  • 2012年09月06日 14:35
  • 1539

CSS盒模型里面的几个宽度问题:offsetWidth,clientWidth,scrollWidth以及jquery的.width()函数

CSS盒模型是CSS定位的基础,搞清楚这几个属性之间的关系对CSS定位是非常重要的,自己学习后总结如下,欢迎大家一起讨论!盒模型主要包括四个方面: 盒模型里面的内容(content),也就是实实在在要...
  • u014114702
  • u014114702
  • 2015年04月17日 16:37
  • 1524

scrollWidth,clientWidth,offsetWidth在各浏览器中的兼容性和区别测试

参考链接 为了测试同一代码在不同浏览器中区别,首先统一了环境,设置所有系统分辨率为800×600,试验使用如下面所示: html> head> meta charset="utf-8"> tit...
  • suwu150
  • suwu150
  • 2017年11月22日 22:08
  • 174

style.left,style.width与offsetLeft,offsetWidth、scrollLeft,scrollWidth的区别

1.offsetLeft:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置.offsetParent:布局中设置postion属性(Relative、Absolut...
  • mr_fzz
  • mr_fzz
  • 2016年11月04日 13:54
  • 1074

JS:body元素对象的clientWidth、offsetWidth、scrollWidth、clientLeft、offsetLeft、scrollLeft

document.body.clientWidth 获取body元素对象的内容可视区域的宽度,即clientWidth=width+padding,不包括滚动条。 document.body.clie...
  • u010200222
  • u010200222
  • 2015年05月10日 17:38
  • 1450

有效获取scrollWidth clientWidth方法:

有效获取scrollWidth clientWidth方法: var scrollWidth = Math.max(document.documentElement.scrollWidth,...
  • huangdehui1989
  • huangdehui1989
  • 2014年03月12日 20:06
  • 673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:clientWidth/scrollWidth/offsetWidth
举报原因:
原因补充:

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