【发布时间】:2021-09-24 15:04:27
【问题描述】:
我有一个任意形状和大小的图像,我想在不改变其比例且不截断图像的一部分的情况下将其放大为包含 div。
下面是我想到的图表:
请注意,图像有时垂直居中,有时水平居中。
如果图像总是很宽,我可以使用:
img {
width: 100%;
height: auto;
margin: auto;
}
但如果图像较窄,这将不起作用,因为它最终会切掉顶部和底部。
有没有办法(可能使用 grid 或 flex)来容纳图像?
【问题讨论】:
-
如果您的容器为固定大小,请使用
object-fit:developer.mozilla.org/en-US/docs/Web/CSS/object-fit。不需要使用 flex/grid。 -
谢谢@Terry。但是,我花了很长时间才弄清楚我还需要包含
object-fit: contain; width: 100%; height: 100%;。从我在网上发现的文档或其他示例中看不到这一点。