如何在 CSS Grid 布局中指定行高?

新手上路,请多包涵

我有一个 CSS 网格布局,我想让 一些(中间 3)行拉伸到它们的最大尺寸。我可能正在寻找类似于 flex-grow: 1 对 Flexbox 所做的属性,但我似乎找不到解决方案。

注意:这仅适用于 Electron 应用程序,因此浏览器兼容性并不是真正的问题。

我有以下 CSS 网格布局:

 .grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr 1fr;
  grid-gap: 10px;
  height: calc(100vh - 10px);
}

.grid .box {
  background-color: grey;
}

.grid .box:first-child,
.grid .box:last-child {
  grid-column-start: 1;
  grid-column-end: -1;
}

/* These rows should 'grow' to the max height available. */
.grid .box:nth-child(n+5):nth-child(-n+7) {
  grid-column-start: 1;
  grid-column-end: -1;
}
 <div class="grid">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

这将创建以下网格:

当前网格

当没有一个框包含任何内容时,我希望网格看起来像这样:

首选网格

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

其中一篇 相关文章 给了我(简单的)答案。

显然, --- grid-template-rows 属性上的 auto 值正是我想要的。

 .grid {
    display:grid;
    grid-template-columns: 1fr 1.5fr 1fr;
    grid-template-rows: auto auto 1fr 1fr 1fr auto auto;
    grid-gap:10px;
    height: calc(100vh - 10px);
}

原文由 Chris 发布,翻译遵循 CC BY-SA 3.0 许可协议

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