正如 这里 所讨论的,我试图让一个图像被覆盖在一个 div 中。只需这些简单的线条,我就可以通过 background-image
实现这一目标:
div{
width: 172px;
height: 172px;
border-style: solid;
background-image: url('../images/img1.jpg');
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
结果图像在 div 中居中并调整大小以适合 div 的宽度或高度(取决于图像是否宽)。现在我想用 div 中的图像标签实现相同的结果。
<div>
<img src="images/img1.jpg"/>
</div>
有没有办法用纯 CSS 解决这个问题?
原文由 PLAYCUBE 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
object-fit:cover
不丢失比率。注意: 这 在 IE 中不受支持
PS - 对于那些喜欢投反对票(并且正在投反对票)的人,原因很简单, “它在 IE 中不起作用” (顺便说一句,它是一个过时的浏览器,所以请教育你的客户至少使用升级后的版本浏览器 EDGE),有一些
object-fit
可以使object-fit
工作。这里有一些例子:
或者,如果您认为仅针对该属性使用 polyfill 有点矫枉过正,这里有一个简单的代码片段,可以使它在 IE 中正常工作。
您可以使用一个简单的 JS 片段来检测是否支持
object-fit
,然后将img
替换为svg