這可能嗎?下面的代碼複製了一半的行爲,圖像將始終覆蓋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