[绍棠] scrollWidth,clientWidth,offsetWidth的区别

本文详细介绍了DOM中三个重要的宽度属性:scrollWidth、clientWidth和offsetWidth。scrollWidth表示元素的实际内容宽度,不包括边框但包括溢出部分;clientWidth则表示内容可视区的宽度,不包含滚动条和边框;offsetWidth则是元素的整体宽度,包括边框和滚动条。当内容超出可视区时,scrollWidth大于clientWidth。同时,文章还区分了offsetWidth与style.width的区别,并提供了相关示例进行解释。

说明:

scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。
clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。
offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。

该demo就在页面中放一个textarea元素,采用默认宽高显示。

情况1:

元素内无内容或者内容不超过可视区,滚动不出现或不可用的情况下。

scrollWidth=clientWidth,两者皆为内容可视区的宽度。

offsetWidth为元素的实际宽度。

情况2:

元素的内容超过可视区,滚动条出现和可用的情况下。

scrollWidth>clientWidth。

scrollWidth为实际内容的宽度。

clientWidth是内容可视区的宽度。

offsetWidth是元素的实际宽度。

offsetWidth、offsetLeft、 clientWidth的区别

 

 

 

PS:offsetWidth和width的区别

1.offsetWidth属性可以返回对象的padding+border+width属性值之和,style.width返回值就是定义的width属性值。

2.offsetWidth属性仅是可读属性,而style.width是可读写的。

3.offsetWidth属性返回值是整数,而style.width的返回值是字符串,并且带有单位(px)。

4.style.width仅能返回以style方式定义的内部样式表的width属性值。

5.var positionParent = obj.offsetParent; //获取上一级定位元素对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值