html - 如何在垂直方向上实现多个元素的网格行?

标签 html css css-grid grid-layout

我有一个两列网格布局,其中包含高度为 X 和 2X 的框(fiddle,下面的屏幕截图)

第二个盒子下面是空的,足够放第三个盒子:

ex

我想知道是否可以将卡片 3 放置在该空白区域(并让卡片 4 代替卡片 3,让卡片 5 代替卡片 4)

我尝试使用 flex 进行这种布局,但遇到了同样的情况。

.boxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-column-gap: 25px;
  grid-row-gap: 25px;
}

.smallbox {
  border: 2px solid black;
  padding: 1em;
  height: 50px;
}

.bigbox {
  border: 1px solid black;
  padding: 1em;
  background: red;
  height: 150px;
}
<div class="boxes">
  <div class="bigbox">1</div>
  <div class="smallbox">2</div>
  <div class="smallbox">3</div>
  <div class="smallbox">4</div>
  <div class="smallbox">5</div>
</div>

最佳答案

不要在网格项本身上设置高度。

在容器级别使用 grid-auto-rows,然后为网格区域使用 span

.boxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 50px; /* new */
  grid-column-gap: 25px;
  grid-row-gap: 25px;
}

.smallbox {
  grid-row: span 1; /* new */
  border: 2px solid black;
  padding: 1em;
}

.bigbox {
  grid-row: span 3; /* new */
  border: 1px solid black;
  padding: 1em;
  background: red;
}
<div class="boxes">
  <div class="bigbox">1</div>
  <div class="smallbox">2</div>
  <div class="smallbox">3</div>
  <div class="smallbox">4</div>
  <div class="smallbox">5</div>
</div>

关于html - 如何在垂直方向上实现多个元素的网格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693798/

相关文章:

PHP 生成的 SVG 作为背景图像

css - 怎么修? IE、flexbox/grid 和 img 显示内联

css - 两列布局,无需 JavaScript 即可重新排序元素

css - 使用嵌套 CSS 网格时出现幻象空格

css - 可变宽度 div 的可变宽度形式?

css - 我应该使用 Div、Span、Nav 还是标题标签

html - 为什么我的 div 不对齐?

javascript - iFrame Resizer 将 iFrame 的高度增加到无穷大

javascript - 使用后不显示下一个和上一个箭头

css - 为什么:hover pseudo class have another selector after it?