【问题标题】:Image with object-fit not filling container具有对象拟合的图像未填充容器
【发布时间】:2017-09-22 05:40:20
【问题描述】:

我有一个比它高的横幅图片。我有一个显示不同大小图像的容器 div,对于横幅样式,我需要它拉伸和/或挤压以在两个方向上填充父 div。我看过object-fit:fill,但它似乎只是水平拉伸图像 - 它没有做任何事情让它垂直填充div。

一个工作示例是here;代码如下:

.tile {
  position: relative;
  float: left;
  margin: 10px;
  border: 4px solid green;
  height: 400px;
}

.deal {
  width: 342px;
  background: #ffffff;
}

.tileImage.promo {
  object-fit: fill;
}
<div class="tile deal hsNational active">
  <img class="tileImage promo" src="https://cdn.pixabay.com/photo/2015/12/13/09/42/banner-1090835_960_720.jpg" height="200px">
</div>

我做错了什么? (我尝试了object-fit 的各种值,但没有一个能满足我的需要。)图像应该被水平挤压并垂直拉伸以完全填充绿色边框内的区域。

【问题讨论】:

    标签: html css object-fit


    【解决方案1】:

    定义图像的尺寸,然后object-fit 起作用:

    .tile {
        position: relative;
        float: left;
        margin: 10px;
        border: 4px solid green;
        height: 400px;
    }
    
    .deal {
        width: 342px;
        background: #ffffff;
    }
    
    .tileImage.promo {
        object-fit: fill; /* also try 'contain' and 'cover' */
        width: 100%;
        height: 100%;
    }
    <div class="tile deal hsNational active">
      <img class="tileImage promo" src="https://cdn.pixabay.com/photo/2015/12/13/09/42/banner-1090835_960_720.jpg">
    </div>

    更多详情:Why isn't object-fit working in flexbox?

    【讨论】:

    • 谢谢;这就是我所需要的。我是后端开发人员,所以我的 CSS 不是很强大,而且我看到的示例没有提到需要在图像上设置默认大小。
    • DIV需要多张图片怎么办?我不能将 both 高度和宽度都定义为 100%,否则第一张图片会占用所有可用空间并覆盖剩余的图片。但如果我不定义宽度,或者将其定义为“自动”,那么什么也不会发生。
    • OMFG 谢谢你——我整晚都在为这个问题争吵
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2014-01-07
    • 2014-04-12
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多