我的页面上有一个div占据了视口宽度的三分之二和高度的95%。我计划让图像占据整个div,纵横比为21:9。我将div设置为溢出:隐藏;这意味着左右部分被切掉。这工作得很好,直到你进入高宽比如32:9的屏幕,其中div比图像宽。我想知道是否有一个干净的解决方案,使图像的顶部/底部切掉时,发生这种情况。
HTML:
<figure>
<a
href="images/slideshow/00_stellaris_acot.png"
data-lightbox="ui_overhaul_dynamic"
>
<img src="images/slideshow_source/00_stellaris_acot.png" alt="" />
</a>
<a
href="images/slideshow/01_delta.png"
data-lightbox="ui_overhaul_dynamic"
>
</a>
<a
href="images/slideshow/02_alpha.png"
data-lightbox="ui_overhaul_dynamic"
>
</a>
</figure>
CSS:
body > main > section > figure {
background-color: rgb(10, 12, 54);
border-style: none solid none none;
overflow: hidden;
}
body > main > section > figure > a > img {
height: 100%;
margin-left: 50%;
transform: translateX(-50%);
}
1条答案
按热度按时间hjqgdpho1#
你可以使用CSS中的
object-fit
属性来实现这个行为。它指定了一个被替换元素的内容应该如何适应它所使用的高度和宽度所建立的框。使用
object-fit: cover
时,图像将覆盖整个容器,同时保留其纵横比,切断任何溢出:或者,您可以设置
object-fit: contain
,图像将适合容器,同时保留其纵横比,显示图像的所有部分: