SHU BLOG

BLOG NEWS ブログ

  • ARTICLE
    2020.12.14
  • CATEGORY
TITLE

【CSS】grid-auto-flowの使い方、アイテムの配置方向を指定する!

SHU[シュウ]

1991年生まれ九州の宮崎県育ち
高校卒業後、愛知県で自動車関係の
お仕事に5年間勤め、WEB業界に
転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画
基本インドアです!笑

シュウ
シュウ
今回は【CSS】grid-auto-flowの使い方、アイテムの配置方向を指定する!の解説になります!

こんな方に読んでほしい

  • CSSを学び始めた方へ
  • Grid Layoutについて学びたい方へ
  • 今回はgrid-auto-flowでグリッドアイテムの配置方向を指定する解説になります

前回は、grid-gapについての指定方法など、解説しております。
【CSS】grid-gapの使い方、アイテム同士間の余白を指定する!

Grid Layoutでは様々なレイアウトが可能になります。
指定項目が多いため、パートに分けて解説していきます。

グリッドレイアウトとは

グリッドレイアウトとは

グリッドレイアウトとは
グリッドレイアウトは2次元レイアウトとも呼ばれ、HTML、CSSを使って
水平方向、垂直方向の両方に沿って要素を配置できます。

グリッドレイアウト

グリッドレイアウトでは、Grid Layoutコンテナを格子状のマス目のように考えることができます。
要素の長さや、順番に関わらず、上記のように2次元的にレイアウトすることが可能です。
1方向に関わらず、自由に要素を配置できます。

親要素に、display:grid、inline-gridを指定すると、その要素をGrid Layoutコンテナに指定できます。
また、Grid Layoutコンテナの子要素は自動的にグリッドアイテムとなります。

Grid Layoutコンテナ (グリッド全体を表す要素になります)
グリッドアイテム (グリッドのエリアに配置する要素になります)
書き方は以下のようになります

親要素 {
	display: grid / inline-grid;
	grid-template: 値 / 値;
	
	/*--内訳
	①display: grid;
	②display: inline-grid;
	①か②のどちらかを指定します。
	--*/
}
指定できる値
  • grid-auto-flow
    今回はここを解説!
    grid-auto-flowとは、グリッドアイテムの配置方向を指定します。
  • grid-template 
    解説の記事ありますよ
    グリッドレイアウトの行と列のトラックサイズをまとめて指定します。
  • display:grid / inline-grid 
    解説の記事ありますよ
    要素をGrid Layoutコンテナに指定できます。

grid-auto-flowの使い方について

grid-auto-flowの使い方について

grid-auto-flowプロパティとは、グリッドアイテムの配置方向を指定します。
グリッドアイテムは、「grid-row」「grid-column」「grid-area」が指定されていない場合は、
左上から順に水平方向に埋まっていきます。

書き方は以下のようになります

/*--親要素--*/
親要素 {
	display: grid / inline-grid;
	grid-template: 値 / 値;
	grid-auto-flow: 値;
	
	/*--内訳
	①display: grid;
	②display: inline-grid;
	①か②のどちらかを指定します。
	--*/	
}
指定できる値
  • row(初期値)
    グリッドアイテムが水平方向に埋まります。
  • column
    グリッドアイテムが垂直方向に埋まります。
  • dense
    空のスペースをなるべく埋めるようにグリッドアイテムを配置します。

row(初期値)の使用例

row(初期値)の使用例

row(初期値)プロパティとは、グリッドアイテムが水平方向に埋まります。
左上から順に埋まっていきます。基本初期値の値になりますので、指定しなくても問題ありません。

row(初期値)の使用例

アイテムA
アイテムB
アイテムC
アイテムD
アイテムE
アイテムF
アイテムG
アイテムH
アイテムI
<div class="grid-container">
<div class="grid-item">アイテムA</div>
<div class="grid-item">アイテムB</div>
<div class="grid-item">アイテムC</div>
<div class="grid-item">アイテムD</div>
<div class="grid-item">アイテムE</div>
<div class="grid-item">アイテムF</div>
<div class="grid-item">アイテムG</div>
<div class="grid-item">アイテムH</div>
<div class="grid-item">アイテムI</div>
</div>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px 100px / 200px 200px 200px;
	grid-auto-flow: row;

	/*--以下装飾--*/
	background-color: #ffffff;
	border: solid 5px #fb6158;
}

/*--子要素--*/
.grid-item {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	color: #ffffff;
	background-color: #1ece50; /*--各アイテム 背景色のみ変更しております--*/
	padding: 30px;
	box-sizing: border-box;
}

columnの使用例

columnの使用例

columnプロパティとは、グリッドアイテムが垂直方向に埋まります。
左上からアイテムAの左がアイテムDになり、下がアイテムがBになります。

columnの使用例

アイテムA
アイテムB
アイテムC
アイテムD
アイテムE
アイテムF
アイテムG
アイテムH
アイテムI
<div class="grid-container">
<div class="grid-item">アイテムA</div>
<div class="grid-item">アイテムB</div>
<div class="grid-item">アイテムC</div>
<div class="grid-item">アイテムD</div>
<div class="grid-item">アイテムE</div>
<div class="grid-item">アイテムF</div>
<div class="grid-item">アイテムG</div>
<div class="grid-item">アイテムH</div>
<div class="grid-item">アイテムI</div>
</div>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px 100px / 200px 200px 200px;
	grid-auto-flow: column;

	/*--以下装飾--*/
	background-color: #ffffff;
	border: solid 5px #fb6158;
}

/*--子要素--*/
.grid-item {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	color: #ffffff;
	background-color: #1ece50; /*--各アイテム 背景色のみ変更しております--*/
	padding: 30px;
	box-sizing: border-box;
}

denseの使用例

denseの使用例

配置する際に、空のセルエリアができてしまうことがあります、
denseプロパティを指定することで、空のスペースをなるべく埋めるようにグリッドアイテムを配置します。

row dense 各行軸に沿って順番に配置されます。

row denseの使用例

アイテムA
アイテムB
アイテムC
アイテムD
アイテムE
<div class="grid-container">
<div class="grid-item grid-itemA">アイテムA</div>
<div class="grid-item grid-itemB">アイテムB</div>
<div class="grid-item grid-itemC">アイテムC</div>
<div class="grid-item grid-itemD">アイテムD</div>
</div>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template-rows: 100px 100px 100px;
	grid-template-columns: 200px 200px 200px;
	grid-auto-flow: row dense;
	
	/*--以下装飾--*/
	background-color: #ffffff;
	border: solid 5px #fb6158;
}

/*--子要素--*/
.grid-item {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	color: #ffffff;
	background-color: #1ece50; /*--各アイテム 背景色のみ変更しております--*/
	padding: 30px;
	box-sizing: border-box;
}

.grid-itemA {
	grid-column: 2 / span 2;
}

.grid-itemB {
 	grid-column: span 2;
}

column dense 各列軸に沿って順番に配置されます。

column denseの使用例

アイテムA
アイテムB
アイテムC
アイテムD
アイテムE
<div class="grid-container">
<div class="grid-item grid-itemA">アイテムA</div>
<div class="grid-item grid-itemB">アイテムB</div>
<div class="grid-item grid-itemC">アイテムC</div>
<div class="grid-item grid-itemD">アイテムD</div>
</div>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template-rows: 100px 100px 100px;
	grid-template-columns: 200px 200px 200px;
	grid-auto-flow: column dense;
	
	/*--以下装飾--*/
	background-color: #ffffff;
	border: solid 5px #fb6158;
}

/*--子要素--*/
.grid-item {以下省略}

.grid-itemA {
	grid-column: 2 / span 2;
}

.grid-itemB {
 	grid-column: span 2;
}

関連記事

【STEP01】Grid Layoutの使い方、グリッドレイアウトを指定する
要素をGrid Layoutコンテナに指定できます。
【STEP02】grid-templateの使い方、行と列のトラックサイズを指定する
grid-templateとは、行と列のトラックサイズをまとめて指定します。
【STEP03】grid-start -endの使い方、アイテムの開始、終了位置を指定する
grid-start -endの使い方、アイテムの開始、終了位置を指定します。
【STEP04】grid-row -columnの使い方、行と列のアイテムの位置をまとめて指定する
grid-row -columnの使い方、アイテムの位置をまとめて指定します。
【STEP05】grid-template-areasの使い方、グリッドレイアウトのエリアを指定する
grid-template-areasの使い方、グリッドレイアウトのエリアを指定します。
【STEP06】grid-gapの使い方、アイテム同士間の余白を指定する!
grid-gap使い方、グリッドアイテム同士間の余白を指定します。
【STEP08】grid-auto-rows -columnsの使い方、暗黙のトラックのサイズを指定!
grid-auto-rows -columnsプロパティとは、暗黙のトラックのサイズを指定します。

まとめ

今回はこれで以上です。
次回は「暗黙のトラックのサイズ」について解説します。

POINT
  • Grid Layoutコンテナとは、グリッド全体を表す要素になります。
  • グリッドアイテムとは、グリッドのエリアに配置する要素になります。
  • grid-auto-flowとは、グリッドアイテムの配置方向を指定します。
  • denseとは、空のスペースをなるべく埋めるようにグリッドアイテムを配置します。
スポンサーリンク

SHU

1991年生まれ九州の宮崎県育ち高校卒業後、愛知県で自動車関係のお仕事に5年間勤め、WEB業界に転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画基本インドアです!笑
つくる、しあわせをテーマとして主にWEBに関する様々な情報を発信しています。

最新記事

関連記事

オススメ記事

月別アーカイブ

page_top