css – max-height:100%的父节点溢出父节点

前端之家收集整理的这篇文章主要介绍了css – max-height:100%的父节点溢出父节点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图理解看起来是对我意想不到的行为:

我有一个max-height为100%的容器内的元素,也使用max-height,但是,意外的是,子元素溢出父:

测试用例: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;
}

有没有人知道为什么孩子不会在第一个例子中尊重其父的最大高度?为什么需要显式高度?

解决方法

当您为子级指定max-height的百分比时,它是父级的实际高度的百分比,而不是父级的最大高度, oddly enough.这同样适用于 max-width

所以,当你没有在父对象上指定显式高度时,子对象的最大高度没有基本高度,因此max-height计算为none,允许子对象尽可能高。现在唯一影响孩子的其他约束是它的父元素的最大宽度,并且由于图像本身比它宽,所以它向下溢出容器的高度,以便保持其长宽比,同时仍然大到可能整体。

当你为父节点指定一个显式高度时,子节点知道它必须是该显式高度的100%。这允许它被约束到父的高度(同时仍然保持其高宽比)。

原文链接:https://www.f2er.com/css/222384.html

猜你在找的CSS相关文章