当初、グリッドは、水平方向の項目をレイアウトします。これは、グリッドコンテナの初期設定がgrid-auto-flow: row
であるためです。あなたのレイアウトで取得しているものだ
:あなたはgrid-auto-flow: column
に切り替えると
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-flow: row; /* default setting; can be omitted */
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</div>
、その後、グリッド項目は、垂直方向にレイアウトされています。
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-flow: column;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</div>
あなたに実行し、問題が定義された行がない、とあなたは列の区切りが発生する場所コンテナが推測できないということです。したがって、デフォルトでは単一の行の後に折り返しが行われ、必要に応じて新しい列が追加されます。
希望するレイアウトを実現するには、ラップする場所をコンテナに伝える必要があります。
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-flow: column;
grid-template-rows: 25px 25px 25px;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</div>
スペックから:
7.7. Automatic Placement: the grid-auto-flow
property
このプロパティは、自動配置の項目が流さ取得方法を正確に指定して、自動配置アルゴリズムがどのように動作するかを制御しますグリッドに入れる。
row
自動配置アルゴリズムは は、必要に応じて新しい行を追加する、順番に各行を充填することにより、アイテムを置きます。 row
もcolumn
も でない場合は、row
とします。
column
自動配置アルゴリズムは、必要に応じて新しい列を追加する、 順番に各カラムを充填してアイテムを配置します。行数を指定する必要はありませんCSSグリッドの代替ソリューションについては、
、CSS列を試してみてください。https://stackoverflow.com/a/44099977/3597276
あなたは、グリッドを想定しているどのようにして、行数を指定しない場合次の列にどこにラップするかを知るには? –
ありがとう@VXpはい私は何が必要です。すばらしいです! –
あなたの助けを借りてあなたのおかげで@Michael_B :)を確認しました –