【发布时间】:2020-03-04 16:08:30
【问题描述】:
我希望将图像保持在最小和最大高度和宽度之间,同时尊重纵横比(所以如果需要缩小图像,它会缩小保持纵横比,直到宽度和高度参数低于给定的max-width 和max-height)
它尝试了以下css:
.box {
min-width: 128px;
min-height: 128px;
width: auto;
height: auto;
max-width: 100%;
max-height: 256px;
display: flex;
}
.inner {
background-color: cyan;
width: 100%;
height: 100%;
display: block;
object-fit: contain;
}
<div class="box">
<img class="inner" src="https://i.imgur.com/3t7YAt8.png"/>
</div>
但是,当直接在上面运行时,max-height 会被忽略,图像只遵循max-width 约束。 (可以通过修改max-width来显示,图片会这样缩放)。
如果我将图像本身的 css 更改为使用 max-width 和 max-height 而不是宽度/高度属性,则图像不再缩放以保持纵横比。
.box {
min-width: 128px;
min-height: 128px;
width: auto;
height: auto;
max-width: 100%;
max-height: 256px;
display: flex;
}
.inner {
background-color: cyan;
max-width: 100%;
max-height: 100%;
display: block;
object-fit: contain;
}
<div class="box">
<img class="inner" src="https://i.imgur.com/3t7YAt8.png"/>
</div>
附带说明:在示例中,图像是正方形,但并非总是如此。
【问题讨论】: