【发布时间】:2021-06-08 17:58:51
【问题描述】:
我想使用 flexbox 显示一系列带有小标题的图像。每对图像/文本都包含在一个 div 中。
每个 div 的最大高度最多为 30vh。并且图像应该被缩放以适应它们各自的 div。
好吧,它不起作用。图像溢出其容器。
这个问题非常常见,我将在下面附上相关问题的完整列表。
我认为所需布局的正确 css 应该是这样的:
.container {
display: flex;
flex-direction: column;
align-items: center;
max-height: 30vh;
}
img {
object-fit: contain;
}
由于某种原因,图像不符合对象适合设置。 这是记录问题的屏幕截图:
这是 jsfiddle 上的一个最小可重现示例:https://jsfiddle.net/17a8sj9o/9/
我也试过设置max-height: 100%;。但这仅适用于某些图像。如果你编辑 jsfiddle,你会看到:
尝试使用 max-height 让我觉得这个问题是 flexbox 布局和图像高度之间的一些奇怪的相互作用。
有很多相关的问题,他们总是提倡高度、最大高度和对象拟合的混合。
我进行了广泛搜索,但找不到解决我问题的解决方案。
以下是一些相关问题:
- Contain an image within a div? 使用最大高度和最大宽度,使用绝对像素度量
- Make an image width 100% of parent div, but not bigger than its own width 使用百分比的最大宽度
- Img's max-height not respecting parent's dimensions 使用最大高度和属性的组合进行定位。另一个答案提到对象匹配
【问题讨论】:
-
我认为您需要在
img上设置width:和height:。否则object-fit不起作用。
标签: javascript html css flexbox