offsetWidth
和offsetHeight
,它返回元素的“布局宽度和高度”,即在所有计算后的最终宽度。offsetWidth
如下:因此,要回答你的问题,元素的最终布局宽度通常是元素边框、水平填充、垂直滚动条宽度和内容宽度的总和。HTMLElement.offsetWidth只读属性返回元素的布局宽度。通常,元素的offsetWidth是包括元素边框、元素水平填充、元素垂直滚动条(如果存在,如果呈现)和元素CSS宽度的测量。
offsetHeight
)也是类似的。元素的 width
、margin-left
、margin-right
、left
和 right
属性在布局中所使用的值取决于生成的盒子类型以及彼此之间的关系... 需要区分以下情况:
inline-block
正常流中的非替换元素inline-block
正常流中的替换元素在计算
top
、margin-top
、height
、margin-bottom
和bottom
的值时,必须区分各种类型的框:与上面相同的列表
margin-left
+ border-left-width
+ padding-left
+ width
+ padding-right
+ border-right-width
+ margin-right
但是当我到了高度时,我发现这个:
计算身高时需要考虑许多因素。10.6.3块级非替换元素在
overflow
计算为visible
时的正常流程中当
overflow
不计算为visible
但已传播到视口时,此部分也适用于正常流程中的块级非替换元素。如果
margin-top
或margin-bottom
为auto
,则它们的使用值为0。如果height
为auto
,则高度取决于元素是否具有任何块级子元素以及是否具有填充或边框:元素的高度是从其顶部内容边缘到以下第一个适用项的距离:
- 如果该框与一个或多个行建立内联格式上下文,则为最后一行框的底部边缘
- 其最后一个流入子级的底部(可能折叠)边缘的底部(可能折叠)边缘,如果子级的底部边距不与元素的底部边距折叠
- 其顶部边距不与元素的底部边距折叠的最后一个流入子元素的底部边框边缘
- 否则为零
仅考虑正常流中的子级(即,忽略浮动框和绝对定位框,并且考虑相对定位框而不考虑其偏移)。请注意,子框可能是匿名块框。
要准确并具体地计算HTML元素的宽度或高度,请参考CSS可视化格式模型。要了解元素的确切高度或宽度,请参考开发者工具中的计算值选项卡。
https://developer.mozilla.org/en-US/docs/Web/CSS/width
本页面更详细地解释了盒模型:https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model