我想显示带有圆角的图像。因此,图像必须拉伸到容器,但不会裁剪任何部分,例如object-fit: contain. 但是,border-radius适用于图像元素,而不是图片内容。这是一个示例(也是JSFiddle):
body {
width: 100vw;
height: 100vh;
margin: 0;
}
div {
width: 100%;
height: 100%;
}
img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 20%;
}Run Code Online (Sandbox Code Playgroud)
<div>
<img src="http://imgs.ntdtv.com/pic/2018/1-23/p8651401a412676208.jpg">
</div>Run Code Online (Sandbox Code Playgroud)
您可以在调整视口大小时检查它是如何工作的。
那么,有没有办法让图像元素在两个方向上调整其边框的大小以适应容器,就像object-fit那样?
或者也许是一种在图像内容上应用“裁剪四舍五入的矩形过滤器”的方法?
小智 11
我也遇到过这个问题,并且我已经找到了解决方法。如果将高度和宽度设置为 auto,img 元素将保持其纵横比并且图像会触及边框。然后,您可以使用 max-width 和 max-height 而不是宽度和高度。
img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
object-fit: contain;
border-radius: 20%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}Run Code Online (Sandbox Code Playgroud)
您可能还必须将 img 置于父 div 的中心,因为现在如果它小于最大尺寸,它将移动到左上角。