通栏banner图片,如何不变形且内容完全显示不裁剪啊?

要求图片等比例完整显示不裁剪不留白, 图片比例固定是16/3

使用object-fit: contain; 图片两边有空白
object-fit: contain
使用object-fit: cover; 图片显示不全,被裁剪了
object-fit: cover

原图
原图

阅读 1.4k
3 个回答
✓ 已被采纳

1.如果你是用img标签,可以这样解决
<div class="image-container">
<img src="your-image.jpg" alt="Image">
</div>
.image-container {
width: 100%;
padding-top: calc(100% / (16 / 3)); / 16:3 aspect ratio /
position: relative;
overflow: hidden;
}

.image-container img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover; / Ensures the image covers the container /
}

2.如果你是用背景图加载,可以这样写
<div class="image-container"></div>

.image-container {
width: 100%;
padding-top: calc(100% / (16 / 3)); / 16:3 aspect ratio /
background-image: url('your-image.jpg');
background-size: cover; / Ensures the image covers the container /
background-position: center; / Centers the image /
background-repeat: no-repeat; / Prevents the image from repeating /
}

你没办法在一个非常大的范围内让你的图片自适应。要么你准备多个图片使用在不同场景,要么你容忍某个程度的差错。

解决了, 使用padding-top

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏