SHU BLOG

BLOG NEWS ブログ

  • ARTICLE
    2021.01.04
  • CATEGORY
TITLE

【CSS】グリッドやアイテムの位置・方向を指定する!番外編

SHU[シュウ]

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

シュウ
シュウ
今回は【CSS】グリッドやアイテムの位置・方向を指定する!番外編の解説になります!

こんな方に読んでほしい

  • CSSを学び始めた方へ
  • Grid Layoutについて学びたい方へ
  • 今回は以前、解説したjustify-contentalign-contentなどと組み合わせて位置・方向を
    指定する解説になります

今回は、今まで解説してきた、justify-contentalign-contentと、組み合わせて位置・方向を指定します。

グリッドレイアウトとは

グリッドレイアウトとは

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

グリッドレイアウト

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

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

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

親要素 {
	display: grid / inline-grid;
	
	/*--内訳
	①display: grid;
	②display: inline-grid;
	①か②のどちらかを指定します。
	--*/
}
指定できる値

基本となるGrid Layout

基本となるGrid Layout

基本は、左上からレイアウトが構築されます。
-rows (行のトラック)は2になり
「-rows: 100px 100px」のように指定します。
-columns (列のトラック)は3になり
「-columns: 100px 100px 100px」のように指定します。

基本となるGrid Layout

A
B
C
D
E
F
<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>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px / 100px 100px 100px;

	/*--以下装飾--*/
	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;
}

justify-content アイテムの配置する位置を指定する

justify-content アイテムの配置する位置を指定する

justify-contentプロパティとは、flexboxアイテムを配置する際に、開始点や終了点、中心からの配置が可能になります。
今回は、アイテムを中心から配置します。
詳しい指定方法については下記の記事で解説しております。

justify-contentについての解説記事

flexboxアイテムを配置する際に、開始点や終了点、中心からの配置が可能になります。

指定できる値
  • flex-start(初期値)
    flexboxコンテナのメイン軸の開始点から配置します
  • flex-end
    flexboxコンテナのメイン軸の終了点から配置します
  • center
    flexboxコンテナのメイン軸の中心から配置します
  • space-between
    flexboxアイテムの最初を開始点に、最後を終了点に、残りは均等に配置します
  • space-around
    flexboxコンテナのメイン軸に合わせて、flexboxアイテムを等間隔に配置します

justify-content アイテムの配置する位置を指定する

A
B
C
D
E
F
<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>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px / 100px 100px 100px;
	justify-content: center;

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

/*--子要素--*/
.grid-item {/*--以下装飾--*/}

align-content アイテムの縦方向の揃え位置を指定する

align-content アイテムの縦方向の揃え位置を指定する

align-contentプロパティとは、flexboxアイテムが複数行あった際に、クロス軸に対して配置が可能になります。
今回は、justify-contentと組み合わせをし、クロス軸に合わせて、中央に配置します。
詳しい指定方法については下記の記事で解説しております。

align-contentについての解説記事

flexboxアイテムが複数行あった際に、クロス軸に対して配置が可能になります。

指定できる値
  • stretch(初期値)
    flexboxコンテナ(親要素)のクロス軸に合わせて、自動調整されます
  • flex-start
    flexboxコンテナのクロス軸に合わせて、
    上部に配置
    します
  • flex-end
    flexboxコンテナのクロス軸に合わせて、
    下部に配置
    します
  • center
    flexboxコンテナのクロス軸に合わせて、
    中央に配置
    します
  • space-between
    flexboxアイテムの最初を開始点に、最後を終了点に、残りは均等に配置します
  • space-around
    flexboxコンテナのクロス軸に合わせて、flexboxアイテムを等間隔に配置します

align-content アイテムの縦方向の揃え位置を指定する

A
B
C
D
E
F
<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>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px / 100px 100px 100px;
	justify-content: center;
	align-content: center;

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

/*--子要素--*/
.grid-item {/*--以下装飾--*/}

grid-gap アイテム同士間の余白を指定する

grid-gap アイテム同士間の余白を指定する

grid-gapプロパティとは、グリッドアイテム同士間の余白を指定します。
行と列の余白を指定します、余白が付くのはグリッドアイテム同士間になるので、
外側には余白が付きません。

今回は、justify-contentalign-contentを組み合わせをし、余白を指定します。
詳しい指定方法については下記の記事で解説しております。

grid-gapについての解説記事

グリッドアイテム同士間の余白を指定します。

指定できる値
  • 数値+単位
    「60px」のように余白を指定します。

grid-gap アイテム同士間の余白を指定する

A
B
C
D
E
F
<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>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template: 100px 100px / 100px 100px 100px;
	justify-content: center;
	align-content: center;
	grid-gap: 10px;

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

/*--子要素--*/
.grid-item {/*--以下装飾--*/}

まとめ

今回はこれで以上です。

POINT
  • Grid Layoutコンテナとは、グリッド全体を表す要素になります。
  • グリッドアイテムとは、グリッドのエリアに配置する要素になります。
  • justify-contentとは、flexboxアイテムをメイン軸(横方向)に対して配置します。
  • align-contentとは、flexboxアイテムをクロス軸(縦方向)に対して配置します。
  • grid-gapとは、グリッドアイテム同士間の余白を指定します。
スポンサーリンク

SHU

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

最新記事

関連記事

オススメ記事

月別アーカイブ

page_top