このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
grid-template-rows
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017年10月.
* Some parts of this feature may have varying levels of support.
grid-template-rows はCSS のプロパティで、グリッド行の線名とトラックのサイズ変更機能を定義します。
In this article
試してみましょう
grid-template-rows: auto;grid-template-rows: 40px 4em 40px;grid-template-rows: 1fr 2fr 1fr;grid-template-rows: 3ch auto minmax(10px, 60px);<section> <div> <div> <div>One</div> <div>Two</div> <div>Three</div> <div>Four</div> <div>Five</div> </div> </div></section>#example-element { border: 1px solid #c5c5c5; display: grid; grid-template-columns: 1fr 1fr; grid-gap: 10px; width: 200px;}#example-element > div { background-color: rgb(0 0 255 / 0.2); border: 3px solid blue;}構文
/* キーワード値 */grid-template-rows: none;/* <track-list> 値 */grid-template-rows: 100px 1fr;grid-template-rows: [line-name] 100px;grid-template-rows: [line-name1] 100px [line-name2 line-name3];grid-template-rows: minmax(100px, 1fr);grid-template-rows: fit-content(40%);grid-template-rows: repeat(3, 200px);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: [line-name1] 100px [line-name2] repeat(auto-fit, [line-name3 line-name4] 300px) 100px;grid-template-rows: [line-name1 line-name2] 100px repeat(auto-fit, [line-name1] 300px) [line-name3];/* グローバル値 */grid-template-rows: inherit;grid-template-rows: initial;grid-template-rows: revert;grid-template-rows: revert-layer;grid-template-rows: unset;このプロパティは以下のように指定することができます。
- キーワード値
none <track-list>値<auto-track-list>値のいずれか
値
none明示的なグリッドがないことを示すキーワードです。どの列も暗黙的に生成され、それらのサイズは
grid-auto-rowsプロパティによって決定されます。[line-name]<custom-ident>で、その位置にある線の名称を指定します。識別子には、予約語のspanとauto以外の有効な文字列を指定してください。線には複数の名前を付けることができ、その場合は[line-name-a line-name-b]のように、角括弧内で空白で区切ります。<length>非負の長さです。
<percentage>非負の
<percentage>で、グリッドコンテナーのブロック方向のサイズに対する相対値です。グリッドコンテナーのサイズがそのトラックのサイズに依存する場合、ブラウザーはグリッドコンテナーの内在サイズを計算する目的で、パーセント値をautoとして扱います。その後、指定されたパーセント値は、グリッドとそのアイテムを配置するための結果として得られるグリッドコンテナーのサイズに対して解決されます。ブラウザーは、トラックの内在サイズがグリッドコンテナーのサイズに寄与する割合を調整し、パーセント値を反映させるために必要な最小限の量だけトラックの最終サイズを増加させることがあります。<flex>frの単位の付いた非負の長さで、このトラックのフレックス係数を指定します。<flex>のサイズのトラックは、残りの空間をフレックス係数の割合に比例して共有します。minmax()表記の外に現れた場合は、最小値が自動として扱われます (つまりminmax(auto, <flex>))。max-contentグリッドトラックを占有しているグリッドアイテムの中で、コンテンツ貢献度の最大値を表すキーワードです。
min-contentグリッドトラックを占有しているグリッドアイテムの中で、コンテンツ貢献度の最小値を表すキーワードです。
minmax(min, max)min 以上、max 以下のサイズの範囲を定義する関数表記法です。max がmin より小さい場合、max は無視され、関数はmin として扱われます。最大値として、
<flex>値はトラックのフレックス係数を設定します。最小値としては無効です。auto最大値として使われた場合、そのトラック内の最大のアイテムの
max-contentサイズを表します。最小値として使われた場合は、グリッドトラックを占めるグリッドアイテムの最大の最小サイズ (
min-width/min-heightで指定されたもの) を表します。ふつうはmin-contentですが、必ずそうとは限りません。minmax()の外で使われた場合、autoは上記の最小値と最大値の間の範囲を表します。これはほとんどの場合、minmax(min-content,max-content)と同じように動作します。メモ:トラックのサイズが
autoの場合 (そしてautoの場合だけ)、align-contentおよびjustify-contentプロパティによって引き伸ばされることがあります。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> )トラックリストの繰り返しフラグメントを表し、繰り返しパターンを示す多数の行をよりコンパクトな形式で記述できるようにします。
masonrymasonry の値は、この軸がメイソンリーアルゴリズムに従ってレイアウトされるべきであることを示します。
subgridグリッドが、その親グリッドのその軸方向の部分に合わせられることを示します。グリッドの行や列のサイズは明示的に指定されず、親グリッドの定義から取得されます。
公式定義
| 初期値 | none |
|---|---|
| 適用対象 | グリッドコンテナー |
| 継承 | なし |
| パーセント値 | コンテンツ領域の対応する寸法に対する相対値 |
| 計算値 | 指定通り。ただし相対的な長さはは絶対的な長さに変換される |
| アニメーションの種類 | 長さ、パーセント値、 calc の単純なリストであり、唯一の違いはリスト内の長さ、パーセント値、 calc の部分の値のみ |
形式文法
grid-template-rows =
none|
<track-list>|
<auto-track-list>|
subgrid<line-name-list>?
<track-list> =
[<line-names>?[<track-size>|<track-repeat>]]+<line-names>?
<auto-track-list> =
[<line-names>?[<fixed-size>|<fixed-repeat>]]*<line-names>?<auto-repeat>[<line-names>?[<fixed-size>|<fixed-repeat>]]*<line-names>?
<line-name-list> =
[<line-names>|<name-repeat>]+
<line-names> =
'['<custom-ident>* ']'
<track-size> =
<track-breadth>|
minmax(<inflexible-breadth> ,<track-breadth>)|
fit-content(<length-percentage [0,∞]>)
<track-repeat> =
repeat([<integer [1,∞]>] ,[<line-names>?<track-size>]+<line-names>?)
<fixed-size> =
<fixed-breadth>|
minmax(<fixed-breadth> ,<track-breadth>)|
minmax(<inflexible-breadth> ,<fixed-breadth>)
<fixed-repeat> =
repeat([<integer [1,∞]>] ,[<line-names>?<fixed-size>]+<line-names>?)
<auto-repeat> =
repeat([auto-fill|auto-fit] ,[<line-names>?<track-size>]+<line-names>?)
<name-repeat> =
repeat([<integer [1,∞]>|auto-fill] ,<line-names>+)
<track-breadth> =
<length-percentage [0,∞]>|
<flex [0,∞]>|
min-content|
max-content|
auto
<inflexible-breadth> =
<length-percentage [0,∞]>|
min-content|
max-content|
auto
<length-percentage> =
<length>|
<percentage>
<integer> =
<number-token>
<fixed-breadth> =
<length-percentage [0,∞]>
例
>グリッド行のサイズの指定
HTML
<div> <div>A</div> <div>B</div></div>CSS
#grid { display: grid; height: 100px; grid-template-rows: 30px 1fr;}#areaA { background-color: lime;}#areaB { background-color: yellow;}結果
仕様書
| Specification |
|---|
| CSS Grid Layout Module Level 2> # track-sizing> |
| CSS Grid Layout Module Level 2> # subgrids> |