这可能吗?下面的代码复制了一半的行为,图像将始终覆盖div
。问题是,如果div
小于img
的尺寸,它将始终在两个轴上被裁剪。模仿背景大小:封面与img在一个div与CSS只有
将max-width: 100%
或max-height: 100%
添加到img
会导致图像扭曲。有没有什么办法可以解决这个问题,而不使用JavaScript/background-img
。
div {
background-color: red;
position: relative;
width: 300px;
height: 200px;
overflow: hidden;
}
div.tall {
height: 400px;
}
div.wide {
width: 400px;
}
img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 100%;
min-height: 100%;
}
img.tallCat {
max-width: 100%;
}
img.wideCat {
max-height: 100%;
}
Expected output:
<div style="background-image:url(https://i.stack.imgur.com/XCOwb.jpg);background-size:cover;">
</div>
Actual output:
<div>
<img src="https://i.stack.imgur.com/XCOwb.jpg">
</div>
Actual output with max-width:
<div class="tall">
<img class="tallCat" src="https://i.stack.imgur.com/XCOwb.jpg">
</div>
Actual output with max-height:
<div class="wide">
<img class="wideCat" src="https://i.stack.imgur.com/XCOwb.jpg">
</div>
努力做到这一点,使用最新的Chrome浏览器和Firefox ... – Eamonn
没关系,您将'object-fit'应用于'img',并提供宽度/高度。谢谢。 – Eamonn
我添加了一个片段 – Johannes