Javascript div的宽度/高度继承行为
我在理解div的宽度和高度的继承性时遇到问题 我有以下代码片段:Javascript div的宽度/高度继承行为,javascript,html,css,Javascript,Html,Css,我在理解div的宽度和高度的继承性时遇到问题 我有以下代码片段: <div id="div1" style="width:50%; height:50%;"> <div id="div2"> </div> </div> 百分比值的宽度和高度值计算相对于其容器的像素值,这是在第一个/父div上看到高度的唯一原因 看到宽度的原因是因为div是块元素,这意味着默认情况下它们跨越其父元素的宽度 块元素的默认高度值是其内容的高度值。百分比值
<div id="div1" style="width:50%; height:50%;">
<div id="div2">
</div>
</div>
百分比值的宽度和高度值计算相对于其容器的像素值,这是在第一个/父div上看到高度的唯一原因 看到宽度的原因是因为div是块元素,这意味着默认情况下它们跨越其父元素的宽度
块元素的默认高度值是其内容的高度值。百分比值的宽度和高度值计算相对于其容器的像素值,这是在第一个/父div上看到高度的唯一原因 看到宽度的原因是因为div是块元素,这意味着默认情况下它们跨越其父元素的宽度
块元素的默认高度值是其内容的高度值。这是因为您指定的
div1
具有div1
容器的宽度和高度的百分比(50%),因此它们的宽度和高度非零
对于
div2
,宽度通常为容器的全宽(即div1
),除非您另有规定,例如使用width:30px
或width:25%
等。高度是div2
内容的高度,在本例中为0。(在本例中,空白被忽略。如果您想进行实验,请在那里添加一个
,您将得到一个非零高度)。这是因为您指定div1
具有div1
容器宽度和高度的百分比(50%),因此它们的宽度和高度都不是零
对于
div2
,宽度通常为容器的全宽(即div1
),除非您另有规定,例如使用width:30px
或width:25%
等。高度是div2
内容的高度,在本例中为0。(在这种情况下,空白被忽略。如果你想进行实验,在那里添加一个
,你将得到一个非零高度)。宽度的关键是div
s是display:block
。块跨越其父块的整个宽度,除非指定了width
css属性,在这种情况下,它们将使用该属性
至于高度,div
s将尽量小。由于#div2
没有内容,因此其高度将为0像素。对于#div1
,指定了一个height
属性,因此它将是其父级高度的50%,我假定它是您的浏览器窗口
请注意,您指定的尺寸不一定是固定的-它们只是针对浏览器窗口大小计算的值。宽度的关键是
div
s是显示:块
。块跨越其父块的整个宽度,除非指定了width
css属性,在这种情况下,它们将使用该属性
至于高度,div
s将尽量小。由于#div2
没有内容,因此其高度将为0像素。对于#div1
,指定了一个height
属性,因此它将是其父级高度的50%,我假定它是您的浏览器窗口
请注意,您指定的尺寸不一定是固定的-它们只是针对浏览器窗口大小计算的值
console.log(getComputedStyle(div1).width); // 727px
console.log(getComputedStyle(div1).height); // 494.5px
console.log(getComputedStyle(div2).width); // 727px
console.log(getComputedStyle(div2).height); // 0px