格子アイテムの自動配置。
名前 | 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>
| |
| |
表示内容: |
表示内容: |