我正在尝试使图像适合黑色边框 div,无论它们是否旋转。我尝试过溢出:隐藏,最大高度:100% 和对象拟合:包含但仍然图像溢出。与变换。我不知道下一步该尝试什么。需要帮忙
<div style="border: 1px solid">
<img img-fix-orientation="model.post.image" ng-src="{{model.post.image ? model.post.image : model.post.sub_category.name == 'Service' ? 'images/service.png' : 'images/thing.png'}}" style="max-width:100%;" alt="post image" />
</div>
原文由 MTA 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意,
object-fit
缺乏良好的浏览器支持,并且有一些选项可以克服,尽管在这里我想展示contain
如何适用于和不带transform
.To show an image in an
img
element uncut, you use theobject-fit: contain
, setwidth
and /orheight
to100%
它将使垂直和水平图像都适合而不会溢出。现在,当您应用
transform: rotate(90deg)
它只是在 视觉上 这样做,所以从文档流的角度来看,它仍然像上面的示例一样调整大小/定位。这意味着
wrapper
和img
都没有意识到任何变化,因此当水平旋转wrapper
img
到垂直时会溢出---
。为了能够旋转这样的
img
并使其垂直适合,transform
需要事先知道wrapper
的纵横比,以便能够补偿溢出,在这个示例中它是已知的 (150px / 250px = 0.6),因此通过将scale
添加到转换中,我们可以避免溢出。对于垂直
img
在垂直wrapper
需要应用相同的修复。