Javascript HTML中style.width和offsetwidth之间的差异?
我注意到Javascript HTML中style.width和offsetwidth之间的差异?,javascript,html,Javascript,Html,我注意到offsetwidth是一个稍大的数字。对于style.height和offsetheight也类似 通常,元素的offsetWidth是一种度量,它包括元素边框、元素水平填充、元素垂直滚动条(如果存在,如果渲染)和元素CSS宽度 资料来源: 因此,它是包含边框和填充的元素的宽度。高度也是一样。返回计算元素的宽度,而只返回由javascript在element.style中定义的宽度属性,不反映实际元素的尺寸 这意味着,如果您试图通过访问el.style来获取元素的宽度,则可能什么也得
offsetwidth
是一个稍大的数字。对于style.height
和offsetheight
也类似
通常,元素的offsetWidth是一种度量,它包括元素边框、元素水平填充、元素垂直滚动条(如果存在,如果渲染)和元素CSS宽度
资料来源:
因此,它是包含边框和填充的元素的宽度。高度也是一样。返回计算元素的宽度,而只返回由
javascript
在element.style中定义的宽度属性,不反映实际元素的尺寸
这意味着,如果您试图通过访问el.style
来获取元素的宽度,则可能什么也得不到(),即使宽度是在CSS中定义的。只有在javascript
在el.style
中定义了数字时,才能获得该数字
此外,offsetWidth
提供元素的实际宽度,包括填充
和边框
(如果使用内容框
),这是框大小调整的默认值。因此,您可以像设置元素内容的width
和padding/border
一样考虑这一点()
如果使用的是边框框,则可以设置元素的总宽度,包括填充
和边框
使内容区域变小()。因此,在这种情况下,将返回完全相同的数字(如果el.style.width
以前由javascript
设置)。offsetWidth是元素CSS宽度的像素度量,包括任何边框、填充和垂直滚动条
clientWidth是内部宽度(即元素内部的空间,包括填充,但不包括边框和滚动条)
仅返回已定义的css时,它不包含边距,因此此答案不正确/此答案中有一些宝石!仔细阅读!