我的网站上有一个图库,用户可以在其中上传图像。
我希望图像位于保持其高度的div中,图像的高度不应大于500px。宽度应自动保持纵横比。
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像素。尽管使用较小的图像会遇到问题,但是如果用户上传的图像非常小,我希望图像“爆炸”到最小200px。我知道可以通过min-height
在图像上设置a来实现,这是一个问题,如果图像的高度小于200px但宽度为2000px,则图像的高度会膨胀为200px,但是长宽比为拧紧,因为图像比图像父div宽。
如何保持最小身高,但保持长宽比?
您要查找的属性是
object-fit
。这是Opera的一项创新,您可以在其2011年关于对象适配的开发文章中了解更多(是的,已经存在了很长时间)。几年前,我无法向您推荐它,但是caniuse显示其他所有人都开始追赶它:http://caniuse.com/#search=object-fit
contain
无论如何,使用值都会强制图像保持其纵横比。或者,您可能要改用此方法:
http://sassmeister.com/gist/9b130efdae95bfa4338e