CSSグリッドレイアウトを使用して、some(中央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>
次のグリッドが作成されます。
ボックスにコンテンツが含まれていない場合、グリッドは次のようになります。
関連記事 の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);
}