Html 如何拉伸图像以覆盖div的全宽和全高?(使用Flexbox)

Html 如何拉伸图像以覆盖div的全宽和全高?(使用Flexbox),html,angularjs,css,flexbox,Html,Angularjs,Css,Flexbox,我想调整图像的大小,以覆盖整个div。如果你们可以在CSS中提出任何建议,而不是使用javascript,这将非常有帮助 这是我现在拥有的一个样本 .third{ width:30%; float:left; margin:8px; } .second{ display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-flow: row wrap; -ms-flex

我想调整图像的大小,以覆盖整个div。如果你们可以在CSS中提出任何建议,而不是使用javascript,这将非常有帮助

这是我现在拥有的一个样本

.third{
  width:30%;
  float:left;
  margin:8px;
}

.second{
  display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}
img{
  width:100%;
  object-fit:fill;
}

<div class="first">
  <div class="second">
    <div class="third">
      <img src="https://i.ytimg.com/vi/nT8pKpXQSJY/maxresdefault.jpg">
    </div>
    <div class="third">
      <img src="http://i1.wp.com/proyectart.es/wp-content/uploads/2015/10/One-Punch-Man.jpg">
    </div>
    <div class="third">
      <img src="https://i.ytimg.com/vi/nT8pKpXQSJY/maxresdefault.jpg">
    </div>
    <div class="third">
      <img src="https://i.ytimg.com/vi/nT8pKpXQSJY/maxresdefault.jpg">
    </div>
    <div class="third">
      <img src="http://i1.wp.com/proyectart.es/wp-content/uploads/2015/10/One-Punch-Man.jpg">
    </div>
    <div class="third">
      <img src="http://i1.wp.com/proyectart.es/wp-content/uploads/2015/10/One-Punch-Man.jpg">
    </div>
  </div>
</div>
。第三{
宽度:30%;
浮动:左;
利润率:8px;
}
.第二{
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
-webkit flex流:行换行;
-ms flex流:行换行;
柔性流:行换行;
}
img{
宽度:100%;
对象匹配:填充;
}
以下是代码笔的链接,以了解更多详细信息:


第一个、第三个和第四个图像比其他图像小。谁能告诉我如何将这些图像拉伸到其容器div的大小,以便看起来所有图像都是相同大小的。先谢谢你。附言:我试过对象匹配,但没用

使用背景尺寸:封面;在CSS规则中,元素可能是获得完整图像覆盖的最简单方法。不过,这可能会切断一些内容,具体取决于背景图像是否在div中居中或调整其大小的方式

背景尺寸:包含;可能更有用,但我是封面大小属性的超级粉丝

更新

如果您想要避免背景图像,那么您可以尝试将img标记设置为100%宽度和/或高度,但这将扭曲您的图像并导致其他问题,并且您可能需要执行一些JS计算来防止出现这种情况


为什么不喜欢使用背景图像?

使用背景尺寸:封面;在CSS规则中,元素可能是获得完整图像覆盖的最简单方法。不过,这可能会切断一些内容,具体取决于背景图像是否在div中居中或调整其大小的方式

背景尺寸:包含;可能更有用,但我是封面大小属性的超级粉丝

更新

如果您想要避免背景图像,那么您可以尝试将img标记设置为100%宽度和/或高度,但这将扭曲您的图像并导致其他问题,并且您可能需要执行一些JS计算来防止出现这种情况


为什么不喜欢使用背景图像?

试着调整你的背景图像。第三,它有一个默认的填充,你可以通过添加下面的CSS来删除。您可以根据需要调整高度。这样可以避免背景图像,但背景图像仍然是最有效的

.third {
  width: 33.33%;
  height: 100px;
  float: left;
  margin:0;
  padding:0;
}

第三,它有一个默认的填充,你可以通过添加下面的CSS来删除。您可以根据需要调整高度。这样可以避免背景图像,但背景图像仍然是最有效的

.third {
  width: 33.33%;
  height: 100px;
  float: left;
  margin:0;
  padding:0;
}

这里有几种方法,具体取决于您想要拉伸还是剪裁图像

在示例1和2中,我使用的技巧是将
img
保持为
visibility:hidden
以避免在
第三个
div上设置固定高度

此外,使用图像url的内联样式,您可以轻松地使用angular,而不会与外部CSS发生冲突

样本1-拉伸

。第三{
弹性:10 calc(33%-16 px);
利润率:8px;
位置:相对位置;
背景大小:100%100%;
}
.第二{
显示器:flex;
柔性流:行换行;
}
img{
可见性:隐藏;
宽度:100%;
高度:自动;
}

以下是几种方法,具体取决于您想要拉伸还是剪裁图像

在示例1和2中,我使用的技巧是将
img
保持为
visibility:hidden
以避免在
第三个
div上设置固定高度

此外,使用图像url的内联样式,您可以轻松地使用angular,而不会与外部CSS发生冲突

样本1-拉伸

。第三{
弹性:10 calc(33%-16 px);
利润率:8px;
位置:相对位置;
背景大小:100%100%;
}
.第二{
显示器:flex;
柔性流:行换行;
}
img{
可见性:隐藏;
宽度:100%;
高度:自动;
}

您可以这样做,但会丢失图像的纵横比

HTML:使用class=“row”添加一个div,并在每个div中放置3个图像


您可以这样做,但会丢失图像的纵横比

HTML:使用class=“row”添加一个div,并在每个div中放置3个图像


首先删除所有的
标签
然后使用这个css

.third{
  width:290px;
  height:180px;
  float:left;
  margin:8px;
  background-image:url("https://i.ytimg.com/vi/nT8pKpXQSJY/maxresdefault.jpg");
  background-size:cover;
}

首先删除所有的
标记
然后使用这个css

.third{
  width:290px;
  height:180px;
  float:left;
  margin:8px;
  background-image:url("https://i.ytimg.com/vi/nT8pKpXQSJY/maxresdefault.jpg");
  background-size:cover;
}

虽然flexbox是一种很好的方法,但最简单的方法是使用表并将图像作为数据插入。 这是密码


图像

尽管flexbox是一种很好的方法,但最简单的方法是使用表格,并将图像作为数据插入。 这是密码


图像

您可以将图像设置为div的背景图像,并使用background size:cover。我考虑过这一点,但有没有其他方法可以不用背景图像来设置高度/宽度?您是否需要图像本身来设置高度/宽度?
背景图像
没有,并且图像是否需要保持纵横比?@LGSo