grid-template-rowsプロパティの説明
CSSのgrid-template-rowsプロパティは、グリッド・レイアウトのコンテナに対して明示的な行方向のグリッド・トラックを定義します。
このプロパティは、配置されるアイテムの数があらかじめ分かっている場合に有効です。アイテムが明示的なグリッドを超過する場合は、grid-auto-rowsによって暗黙的なグリッドが追加されます。
ここで指定された値は、アイテムの配置基準となります。このプロパティ自体は、コンテナ要素に与えます。列方向の指定を行う場合は、grid-template-columnsを使用してください。
grid-template-rowsに指定できる値
none- 明示的なグリッドを作成しません。全ての行は暗黙的に生成されます。それらのサイズは
grid-auto-rowsで定義します。これが初期値です。 <custom-ident>- 予約語を除く任意の文字列でグリッド・ラインの名称を定義します。ひとつの行には、角括弧(
[ ])で囲われたスペース区切りの名前をリストで持つことができます。 <length>- CSSで使用できる長さを表すデータ型の値です。負の値は扱えません。
<percentage>- コンテナの寸法との相対的な割合を示す値です。コンテナの寸法がトラックの寸法に依存する場合は、この値を
autoとして扱う必要があります。負の値は扱えません。 <flex>frの単位で示すフレックス係数を用いた値です。この寸法のトラックは、残りの空間をフレックス係数の割合に比例して分け合います。max-content- グリッド・トラックを占有しているアイテムの中で、コンテンツの寸法が最大のものを参照します。
min-content- グリッド・トラックを占有しているアイテムの中で、コンテンツの寸法が最小のものを参照します。
minmax(min, max)min以上、max以下の寸法を定義する関数です。minよりもmaxの方が小さい場合、maxは無視されminとして扱われます。auto- トラックの寸法を自動で計算します。最大値であれば、
max-contentと同一のキーワードです。最小値であれば、トラックを占めるアイテムの中で最小の寸法(min-width / min-height)を表します。 fit-content( [ <length> | <percentage> ] )min(max-content, max(auto, _argument_))の式で計算します。autoと同じくminmax(auto, max-content)で計算されますが、トラックの寸法がautoの最小値よりも大きい場合はargumentでクランプされます。repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )- トラックリストの繰り返しパターンをよりコンパクトな形式で記述します。
subgrid- グリッドがその軸に親グリッドのスパン部分を採用することを示します。グリッドの行や列のサイズは、明示的に指定されるのではなく、親グリッドの定義から取得されます。
grid-template-rowsの使い方とサンプルコード
grid-template-rowsプロパティの構文は以下の通りです。
/* キーワード値 */
grid-template-rows: none;
/* <track-list>値 */
grid-template-rows: 100px 1fr;
grid-template-rows: repeat(3, 100px);
grid-template-rows: minmax(100px, 1fr);
grid-template-rows: fit-content(50%);
grid-template-rows: [gl-name] 100px;
grid-template-rows: [gl-name1] 100px [gl-name2 gl-name3];
grid-template-rows: subgrid;
grid-template-rows: masonry;
/* <auto-track-list>値 */
grid-template-rows: 200px repeat(auto-fill, 100px) 300px;
grid-template-rows: minmax(100px, max-content)
repeat(auto-fill, 200px) 20%;
grid-template-rows: [gl-name1] 100px [gl-name2]
repeat(auto-fit, [gl-name3 gl-name4] 300px)
100px;
grid-template-rows: [gl-name1 gl-name2] 100px
repeat(auto-fit, [gl-name1] 300px) [gl-name3];
/* グローバル値 */
grid-template-rows: inherit;
grid-template-rows: initial;
grid-template-rows: revert;
grid-template-rows: unset;
grid-template-rowsの実例
それでは実際にgrid-template-rowsプロパティの書き方を見ていきましょう。最初の例は、3つの行に分割された領域にアイテムを配置する祭に、上下の幅を50pxに固定し、真ん中のアイテムを可変式にしたものです。
resizeに対応しているブラウザであれば、コンテナの高さを変えることができます。右下に表示されているハンドルを掴んで、挙動を確認してください。
