[翻译]理解offsetWidth,clientWidth,scrollWidth以及Height

CSS盒模型是非常容易理解的,但当涉及到滚动的内容时,就变的复杂了。浏览器会使用你CSS中设置的值来绘制元素的盒模型,但如果只依赖于CSS中的属性值,当使用JavaScript确定元素的尺寸就不那么直观了。

所以为了计算方便,每个DOM元素都提供了6个属性:offsetWidth,offsetHeight,clientWidth,clientHeight,scrollWidth和scrollHeight。它们都是只读属性,表示了当前元素的布局属性,而且都是整数值。

offsetWidth/offsetHeight:元素的布局大小,是width/height、paddings、scrollbar(滚动条)和borders值的和。

clientWidth/clientHeight:元素的内部大小,包含padding但不包括scrollbar(滚动条)、边框和margin。

scrollWidth/scrollHeight:要素内容的大小,包含在当前视图中不可见的部分(由属性overflow引起)。它包含padding的值,但不包括margin。

时间: 2024-08-10 23:26:14

[翻译]理解offsetWidth,clientWidth,scrollWidth以及Height的相关文章

offsetWidth clientWidth scrollWidth 的区别

了解 offsetWidth clientWidth scrollWidth 的区别 最近需要清除区分开元素的width,height及相应的坐标等,当前这篇用来区分offsetWidth clientWidth scrollWidth的区别 各自的概念 假设有一个元素,width有以下几个进行组合 content padding-left padding-right scrollbar 垂直的滚动条宽度(假设有,没有便为0) border-left border-right clientWid

offsetWidth clientWidth scrollWidth的区别

学习笔记记录一下(以后备查) offsetWidth(Height):网页可见区域的宽(高),包括边线的宽:(width+padding+border) clientWidth(Height):网页可见区域的宽(高): scrollWidth(Height):网页正文的宽(高);获取对象的滚动条宽度. screenWidth(Height):屏幕分辨率的宽(高);

offsetWidth clientWidth scrollWidth 三者之间的区别和联系

scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变. offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变. 如果没有被卷去的宽度,则scrollWidth等于clientWidth, offsetWidth 多出了滚轴区域宽度. 有了被卷去宽度,则如上图所示

JS 获取浏览器窗口大小clientWidth、offsetWidth、scrollWidth

常用: JS 获取浏览器窗口大小 // 获取窗口宽度 if (windows.innerWidth) winWidth = windows.innerWidth; else if ((document.body) && (document.body.clientWidth)) winWidth = document.body.clientWidth; // 获取窗口高度 if (windows.innerHeight) winHeight = windows.innerHeight; el

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

document.body.clientWidth 获取body元素对象的内容可视区域的宽度,即clientWidth=width+padding,不包括滚动条. document.body.clientHeight 获取body元素对象的内容可视区域的高度,即clientHeight=height+padding,不包括滚动条. 浏览器兼容性 在IE7中,如果给body设置滚动条的话,滚动条是出现在body内部的.所以当给body设置width和height时,在IE7中clientWidth

js中clientWidth, scrollWidth, innerWidth, outerWidth和offsetWidth属性的区别

js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11.chrome 和 firefox等. 一.测试1:无滚动条时,dom对象的offsetWidth.clientWidth和scrollWidth (1)测试代码 <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset=&q

js的offsetWidth,clientWidth及offsetParent

js元素的offsetWidth与clientWidth很相似,因此放在一起记录. 1.clientWidth与offsetWidth clientWidth=元素内容区域宽度+水平内边距padding. offsetWidth=元素的内容区域宽度+水平内边距padding+边框的宽度. 因此,可以认为: offsetWidth=clientWidth+边框宽度. 通过实例验证下: <div style="width:500px;height:300px;background-color:

scrollWidth,offsetWidth,clientWidth,width;scrollHeight,offsetHeight,clientHeight,height;offsetTop,scrollTop,top;offsetLeft,scrollLeft,left还有谁

题中的那么多属性让人头都大了,他们到底是什么意思?不同浏览器的实现是一样的吗?以下所有结论来自chrome版本 53.0.2785.89 (64-bit)和firefox版本52.0.2,操作系统ubuntu16.04的测试,关于IE及其它浏览器并没有考虑. 一.谈谈XXWidth 1.width 这个是style对象的一个属性,跟你在css样式里写的那个width的值是一样的,注意他是带单位的. <!DOCTYPE html> <html lang="en">

关于clientWidth scrollWidth offsetWidth的理解

clientWidth:元素可见区域的宽度  clientWidth=padding+width-滚动条 scrollWidth:元素实际内容的宽度 scrollWidth=padding+width(元素实际的内容) offsetWidth:元素可见区域的高度+边框 offsetWidth=border+width+padding 代码设置 textarea{ border: 5px solid red; width: 200px; height: 200px; padding: 5px;}在