CSS网格,有网格项的图像填充高度吗?

标签 css css-grid

我想创建一个图像网格,其中包含一张大图像和大图像右侧的两个小图像,如下所示; screenshot : 由于某种原因,图像不会填充我的网格元素的整个高度。我发现了一些涉及设置“object-fit: cover;”的建议在包含图像的网格项上,但它不起作用。

HTML:

<div class="proj-grid">
    <div class="featured"><img src="images/grid_test.png" alt=""></div>
    <div class="mini1"><img src="images/grid_test.png" alt=""></div>
    <div class="mini2"><img src="images/grid_test.png" alt=""></div>
</div>

CSS:

.proj-grid {
  display: grid;

  grid-template-areas:
    "featured featured mini1"
    "featured featured mini2";

  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  grid-gap: 1rem;
}
.featured {
  grid-area: featured;
}

.mini1 {
  grid-area: mini1;
}

.mini2 {
  grid-area: mini2;
}

我在这里缺少什么? 谢谢!

最佳答案

它要么是图像的高度,要么是(如果图像的大小经过适当计算),因为您没有将图像设置为 display: block;

这是一个在较大图像上使用 overflow:hidden; 来保持宽高比的工作示例。

.proj-grid {
  display: grid;

  grid-template-areas:
    "featured featured mini1"
    "featured featured mini2";

  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  grid-gap: 1rem;
}

.featured {
  grid-area: featured;
  overflow: hidden;
}

.mini1 {
  grid-area: mini1;
}

.mini2 {
  grid-area: mini2;
}

img {
  display: block;
  height: 100%;
  width: auto;
}
<div class="proj-grid">
    <div class="featured"><img src="https://via.placeholder.com/300x150" alt=""></div>
    <div class="mini1"><img src="https://via.placeholder.com/300x150" alt=""></div>
    <div class="mini2"><img src="https://via.placeholder.com/300x150" alt=""></div>
</div>

关于CSS网格,有网格项的图像填充高度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53648678/

相关文章:

css - 右侧的引导导航栏导航不起作用

javascript - 如何在不使用 z-index 的情况下使用 css 网格反向堆叠元素?

html - 居中文本叠加在适合对象和对象位置的图像上 (CSS GRID)

css - 防止内容扩展网格项

html - 将列线添加到 css 网格系统

带空格的 HTML 列表

javascript - 在滚动页面时为 div 设置动画

javascript - 根据大小限制 HTML 内容

html - 如何选择这张表的第一个和最后一个 child ?

css - 使一个 div 跨越网格中的两行