【发布时间】:2018-09-09 01:27:40
【问题描述】:
我想展示一张圆角的图片。所以图像必须拉伸到容器但不裁剪任何部分,如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%;
}
<div>
<img src="https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg">
</div>
您可以在调整视口大小时检查它的工作原理。
那么,有没有办法让图像元素在双向调整其边框以适应容器,就像object-fit 一样?
或者也许是一种在图像内容上应用“crop-by-rounded-rect filter”的方法?
【问题讨论】:
-
我不清楚您希望它如何工作。当视口与图像的纵横比不同时会发生什么?
-
“图片”是指图片内容还是html IMG元素边框?我不关心 html 结构,我只想达到与示例中相同的结果,但带有圆角。类似于如果我从上面的代码中删除border-radius并且图像JPG内容本身会带有圆角裁剪会发生什么。
-
这里的答案 - stackoverflow.com/a/9994936/951745 - 说“没有 CSS 方法可以在两个方向上做到这一点”,这意味着填充 IMG 元素就像 object-fit 使用内容一样。否则我会这样做并在该 IMG 上应用边界半径。