【发布时间】:2017-06-14 11:28:10
【问题描述】:
我有一个 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>
这将创建以下网格:
当没有一个框包含任何内容时,我希望网格看起来像这样:
【问题讨论】:
-
你为什么不想使用 flexbox?
display: grid;的浏览器支持比display: flex;差 -
我应该说这仅适用于 Electron 应用程序,因此浏览器兼容性并不是真正的问题。
-
我正在构建的 Electron 应用程序有 1 个视图,即上面的网格。由于它是一个网格,我认为使用新的 CSS 网格布局会很有趣,因为它(有点)在 Electron 中得到支持。
-
还是 CSS 网格的新手,fr 单元很好,但确实 auto 也是解决我的问题的关键
标签: html css grid-layout css-grid