Javascript 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的宽度和高度的继承性时遇到问题

我有以下代码片段:

<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