【发布时间】:2015-01-21 13:42:20
【问题描述】:
我的网站上有一个画廊,用户可以上传图片。
我希望图像位于保持其高度的 div 中,图像的高度不应超过 500 像素。宽度应该是自动的以保持纵横比。
HTML:
<div id="gallery">
<img src="uploads/my-dynamic-img.jpg">
</div>
我试过这个 CSS:
#gallery{
height: 500px;
img{
max-height: 500px;
max-width: 100%;
}
}
上面的效果很好,画廊总是 500 像素高,图片高度永远不会超过 500 像素。我遇到了较小图像的问题,如果用户上传了一个非常小的图像,我希望它“放大”到至少 200 像素。我知道这可以通过在图像上设置min-height 来实现,问题是,如果图像的高度小于 200 像素,但是说宽 2000 像素,图像会被放大到 200 像素的高度,但是宽高比被搞砸了,因为图像比图像父 div 宽。
我怎样才能有最小高度但保持纵横比?
【问题讨论】:
-
这不是 CSS 语法——您使用的是 SASS 或 Stylus 之类的语言还是只是一个错误?
-
我首先想到的是使用带有 background-size: 包含的背景图片,但是如果你需要覆盖
-
如果您可以控制 html 输出,请使用服务器端处理来确定纵横比,然后添加“宽”或“高”类并分别处理它们的样式。如果您无法控制 html,则可以使用 javascript 来做同样的事情,然后再分别设置它们的样式。
标签: html css sass aspect-ratio