小编典典

最大高度的孩子:100% 溢出父母

all

我试图了解对我来说似乎出乎意料的行为:

我在一个也使用最大高度的容器中有一个最大高度为 100% 的元素,但出乎意料的是,子元素溢出了父元素:

测试用例:http: //jsfiddle.net/bq4Wu/16/

.container {  
    background: blue; 
    padding: 10px; 
    max-height: 200px; 
    max-width: 200px; 
}

img { 
    display: block;
    max-height: 100%; 
    max-width: 100%; 
}

但是,如果给父级指定了明确的高度,则这是固定的:

测试用例:http: //jsfiddle.net/bq4Wu/17/

.container {  
    height: 200px;
}

有谁知道为什么孩子在第一个例子中不尊重其父母的最大高度?为什么需要明确的高度?


阅读 136

收藏
2022-07-01

共1个答案

小编典典

当您为孩子指定百分比时max-height,它是父母实际身高的百分比,而不是父母的max- height奇怪的是。这同样适用于max-width

因此,当您未在父项上指定显式高度时,则没有max-height要计算子项的基本高度,因此max- height计算为none,允许子项尽可能高。现在作用于子级的唯一其他约束是max- width其父级的,并且由于图像本身的高度大于宽度,它会向下溢出容器的高度,以便在保持其纵横比的同时仍然尽可能大。

当您 为父 级指定显式高度时,子级知道它最多必须是该显式高度的 100%。这允许它被限制在父级的高度(同时仍保持其纵横比)。

2022-07-01