格子アイテムの自動配置。
| 名前 | grid-auto-flow
|
|---|---|
| 値 | [row | column] || dense |
| 初期値 | row |
| 適用対象 | 格子コンテナ |
| 継承 | されない |
| 百分率 | 受容しない |
| 算出値 | 指定されたキーワード |
| 正準的順序 | 文法に従う |
| アニメーション型 | 離散的 |
明示的に配置されていない格子アイテムは、後述する自動配置アルゴリズムにより、格子コンテナの中の未占有の空間に 自動的に配置される。grid-auto-flow が、自動配置されたアイテムを格子の中へフローさせる正確な方法を指定する ― すなわち、自動配置アルゴリズムがどのように働くかを制御する。
<DIV style="border:1px solid red; width:200px; height:150px; display:grid; grid-auto-flow:column danse; "> <DIV style="grid-column-start:2; 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; height:150px; display:grid; grid-auto-columns:50px; grid-auto-flow:column danse; "> <DIV style="grid-column-start:2; 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; height:150px; display:grid; grid-auto-flow:row danse; "> <DIV style="grid-column-start:2; 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>¶
row
<DIV style="border:1px solid red; width:200px; height:200px; display:grid; grid-auto-flow:row; "> <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; height:200px; display:grid; grid-template:50px 100px/70px 100px; grid-auto-flow:row; "> <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>
column
<DIV style="border:1px solid red; width:200px; height:200px; display:grid; grid-auto-flow:column; "> <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; height:200px; display:grid; grid-template:50px 100px/70px 100px; grid-auto-flow:column; "> <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>
dense
省略された場合、“疎な”アルゴリズムが利用される: 自動配置アルゴリズムは、格子の中にアイテムを置いていくときに“前に”しか進まず、決して、後戻りして穴埋めすることはない。これは、自動配置されるすべてのアイテムが ― 後続のアイテムで埋めれるような“穴”が残されていても ― “順番どおりに”現れるようにする。
<DIV style="border:1px solid red; width:200px; height:200px; display:grid; grid-auto-flow:dense; "> <DIV style="grid-row-start:2; border:1px solid black; color:blue">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; height:150px; display:grid; grid-template:50px 70px/40px 60px 80px; grid-auto-flow:danse; "> <DIV style="grid-column-start:2; 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>¶
注記: このモジュールの将来レベルにおいては、[自動位置されたアイテムを単独の“既定の”升の中にまとめてフローさせる]ような値の追加が予期されている。
自動配置では、order により改変された文書順序で格子アイテムを並べる。【§ 6.3】
次の例では、3 本の column のいずれも、その内容に自動サイズされている。明示的に定義される row は無い。grid-auto-flow プロパティは row なので、格子の 1 本目の row から順に、必要に応じて[自動配置される格子アイテムを収容する空間に足る分の row]を追加しながら、各 row ごとに 3 本の column が探索される。

自動的な配置を利用するフォーム:
form {
display: grid;
/* 3 本の column を定義する。 どれも内容からサイズされ,対応する各罫には名前が付与される。 */
grid-template-columns:
[labels] auto [controls] auto [oversized] auto;
grid-auto-flow: row dense;
}
form > label {
/* 次に可用な row を自動的に見出しながら,すべてのラベルを 名前 "labels" の column に配置する。 */
grid-column: labels;
grid-row: auto;
}
form > input, form > select {
/* 次に可用な row を自動的に見出しながら,すべてのコントロールを 名前 "controls" の column に配置する。 */
grid-column: controls;
grid-row: auto;
}
#department-block {
/* このアイテムを 1 本目の row の中の名前 "oversized" の column に自動配置する。
アイテムが配置される 3 本の row にスパンする区画は、他の明示的に配置されるアイテムや区画、
あるいは、この区画に先立って自動的に配置されたどのアイテムとも、重なり合わない。 */
grid-column: oversized;
grid-row: span 3;
}
/* フォームのすべてのボタンを,明示的に定義された区画の中に配置する。 */
#buttons {
grid-row: auto;
/* ボタン区画を行内軸全体にスパンさせる。 */
grid-column: 1 / -1;
text-align: end;
}
HTML:
<form>
<label for="姓">氏名(姓)</label>
<input type="text" id="姓" name="name1" />
<label for="名">氏名(名)</label>
<input type="text" id="名" name="name2" />
<label for="郵">〒郵便番号</label>
<input type="text" id="郵" name="zip" />
<label for="県">都道府県</label>
<select type="text" id="県" name="fuken">
<option value="東京">東京都</option>
</select>
<label for="市区番">市区町村・番地</label>
<input type="text" id="市区番" name="address1" />
<label for="号室">建物名・号室</label>
<input type="text" id="号室" name="address2" />
<div id="department-block">
<label for="科">所属科</label>
<select id="科" name="department" multiple>
<option value="あ">あっち系</option>
<option value="そ">そっち系</option>
<option value="こ">こっち系</option>
<option value="に">にっち系</option>
</select>
</div>
<div id="buttons">
<button id="cancel">取り消し</button>
<button id="back">戻る</button>
<button id="next">次へ</button>
</div>
</form>
|
| |
|
| |
| 表示内容: |
| 表示内容: |