CSS3

プロパティ

grid-template-columns、grid-template-rows

  編集:2022.07.14 by T.A.

、mdn(grid-template-columnsgrid-template-rows

格子: 明示的な筋のサイズ法。

名前 grid-template-columns
grid-template-rows
none |
<track-list> |
<auto-track-list> |
subgrid <line-name-list>?
初期値 none
適用対象 格子コンテナ
継承 されない
百分率 内容区画の対応する次元に相対的
算出値 キーワード none /算出筋リスト
正準的順序 文法に従う
アニメーション型 リスト長さが合致する場合は、各アイテムを算出筋リストとする、算出された値型による(筋リストの算出値repeat() の補間/結合 を見よ)。他の場合は離散的。

[grid-template-columns/ grid-template-rows]プロパティは、格子の一連の[column/row]に対し、スペース等で分離された 筋リスト<track-list>)として、格子の[罫名、および 筋サイズ法関数]を指定する。

none
このプロパティからは、明示的な格子を成す筋は作成されないことを指示する(それでも、明示的な格子筋は grid-template-areas プロパティにより作成され得る)。

注記: 明示的な格子が無い下では、どの[row/column]も 暗黙的に生成され、それらのサイズは[grid-auto-rows/grid-auto-columns]プロパティから決定されることになる。

<DIV style="border:1px solid red;
 display:grid;
 grid-template-columns:40px 60px 80px;
 grid-template-rows:none;
">
 <DIV style="border:1px solid black">1</DIV>
 <DIV style="border:1px solid black">2</DIV>
 <DIV style="border:1px solid black">3</DIV>
 <DIV style="border:1px solid black">4</DIV>
</DIV>

<track-list>
=[<line-names>? [<track-size> | <track-repeat>]]+ <line-names>?

筋リストを、一連の[筋サイズ法関数罫名]として指定する。各 筋サイズ法関数 は:

<DIV style="border:1px solid red;
 display:grid;
 grid-template-columns:40px 60px 80px 100px;
 grid-template-rows:none;
">
 <DIV style="grid-column:2/4; border:1px solid black">1</DIV>
</DIV>

<DIV style="border:1px solid red;
 display:grid;
 grid-template-columns:[L] 40px [L] 60px [L] 80px [L] 100px [L];
 grid-template-rows:none;
">
 <DIV style="grid-column:L 2/L 4; border:1px solid black">1</DIV>
</DIV>

<auto-track-list>
=[ <line-names>? [<fixed-size> | <fixed-repeat>] ]*
<line-names>? <auto-repeat>
[ <line-names>? [<fixed-size> | <fixed-repeat>] ]*
<line-names>?

<track-list> の説明を参照。

<DIV style="border:1px solid red;
 display:grid;
 grid-template-areas:'a b c d';
 grid-template-columns:repeat(auto-fill,50px);
 grid-template-rows:none;
">
 <DIV style="border:1px solid black">1</DIV>
 <DIV style="border:1px solid black">2</DIV>
 <DIV style="border:1px solid black">3</DIV>
 <DIV style="border:1px solid black">4</DIV>
</DIV>
普通に「50px」の方が良いような。

subgrid <line-name-list>? [Edge]⛌
subgrid 値は、この値が入れ子な格子 コンテナ の[ grid-template-columns に指定された場合は コンテナ の column / grid-template-rows に指定された場合は コンテナ の row ]軸を 下位格子化 することを指示する【コンテナ は、その軸に関して下位格子になる】

【コンテナ が直交フローを確立している場合、下位格子化される[column/row]は、コンテナ の親格子における[row/column]として共有されることに注意。】

下位格子は、本質的には,次の能を供する:

自身を通して、親格子のパラメタ群を自身が入れ子にしている各要素へ渡して、各要素の内容に基づくサイズ法の情報を親格子へ戻す。

<line-name-list> 引数は、親格子と共有される罫たちを、局所的に命名できるようにする。与えられた場合、指定された各 <line-names> は、下位格子の明示的な格子を成す罫に、罫 1 から順にあてがわれる。超過した <line-names> は無視される。

この格子コンテナは[入れ子な格子でない場合/独立な整形文脈を確立するよう強制される場合(例: レイアウト封込めに因り [CSS-CONTAIN-2] )]、使用値は初期値 none になり、下位格子にはならない。

下位格子化されない軸は、自立的 な軸と称される。

<DIV style="display:grid;
 grid-auto-flow:column;
 grid-template-columns:subgrid [a1] [a2] [a3];
 border:1px solid red;
">
 <DIV style="border:1px solid black">1</DIV>
 <DIV style="grid-column:1/a1; border:1px solid black">2</DIV>
 <DIV style="grid-column:1/a3; border:1px solid black">3</DIV>
</DIV>

<line-names>
[ <custom-ident>* ]

[ ]」で罫名を括って指定する。

<DIV style="border:1px solid red;
 display:grid;
 grid-template-columns:[L1] 40px [L2] 60px [L3] 80px [L4];
 grid-template-rows:[R1] 50px [R2] 70px [R3] 90px [R4];
">
 <DIV style="grid-column:L1; border:1px solid black">1</DIV>
 <DIV style="grid-column:L2/L4; border:1px solid black">2</DIV>
 <DIV style="grid-row:R2/R4; border:1px solid black">3</DIV>
 <DIV style="grid-row:R2; grid-column:L2; border:1px solid black">4</DIV>
</DIV>

<DIV style="border:1px solid red;
 display:grid;
 grid-template-columns:[L] 40px [L] 60px [L] 80px [L];
 grid-template-rows:[R] 50px [R] 70px [R] 90px [R];
">
 <DIV style="grid-column:L 1; border:1px solid black">1</DIV>
 <DIV style="grid-column:L 2/L 4; border:1px solid black">2</DIV>
 <DIV style="grid-row:R 2/R 4; border:1px solid black">3</DIV>
 <DIV style="grid-row:R 2; grid-column:L 2; border:1px solid black">4</DIV>
</DIV>

<track-size>
<track-breadth>
| minmax(<inflexible-breadth>, <track-breadth> )
| fit-content(<length-percentage>)
<track-breadth>
<length-percentage> | <flex> | min-content | max-content | auto
<DIV style="border:1px solid red; width:200px;
 display:grid;
 grid-template-columns:40px 30% auto;
 grid-template-rows:50px;
">
 <DIV style="border:1px solid black">1</DIV>
 <DIV style="border:1px solid black">2</DIV>
 <DIV style="border:1px solid black">3</DIV>
 <DIV style="border:1px solid black">4</DIV>
</DIV>

<DIV style="border:1px solid red; width:200px;
 display:grid;
 grid-template-columns:1fr 1.2fr 1.5fr;
 grid-template-rows:50px;
">
 <DIV style="border:1px solid black">1</DIV>
 <DIV style="border:1px solid black">2</DIV>
 <DIV style="border:1px solid black">3</DIV>
 <DIV style="border:1px solid black">4</DIV>
</DIV>

minmax()
minmax(<inflexible-breadth>, <track-breadth>)
fit-content()
fit-content(<length-percentage>)
<inflexible-breadth>
<length-percentage>
| min-content
| max-content
| auto

<fixed-size>
<fixed-breadth>
| minmax(<fixed-breadth>, <track-breadth>)
| minmax(<inflexible-breadth>, <fixed-breadth>)
<fixed-breadth>
<length-percentage>
minmax()
minmax(<fixed-breadth>, <track-breadth>)
minmax()
minmax(<inflexible-breadth>, <fixed-breadth>)

<line-name-list>
=[<line-names> | <name-repeat>]+
max-content
max( 筋を占めている各 格子アイテムの最大内容供与 ) を表現する。
min-content
max( 筋を占めている各 格子アイテムの最小内容供与 ) を表現する。

次の例に、同じ格子定義を記す 2 つの等価な仕方を示す。両宣言とも、[ 10px の“側溝”column に挟まれた 250px 幅の“主”column ]が 4 回繰り返されるような、格子を生産する。

grid-template-columns:
  10px [col-start] 250px [col-end]
  10px [col-start] 250px [col-end]
  10px [col-start] 250px [col-end]
  10px [col-start] 250px [col-end]
  10px;

上と同じだが、より書き易い:

grid-template-columns:
  repeat(4, 10px [col-start] 250px [col-end])
    10px;

テスト
HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: