SHU BLOG

BLOG NEWS ブログ

  • ARTICLE
    2020.12.05
  • CATEGORY
TITLE

【CSS】grid-row -columnの使い方、行と列のアイテムの位置をまとめて指定する!

SHU[シュウ]

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

シュウ
シュウ
今回は【CSS】grid-row -columnの使い方、行と列のアイテムの位置をまとめて指定する!の解説になります!

こんな方に読んでほしい

  • CSSを学び始めた方へ
  • Grid Layoutについて学びたい方へ
  • 今回はgrid -row -columnで行と列のアイテムの位置をまとめて指定する解説になります

前回は、grid-start -endについての指定方法など、解説しております。
【CSS】grid-start -endの使い方、アイテムの開始、終了位置を指定する!

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

グリッドレイアウトとは

グリッドレイアウトとは

グリッドレイアウトとは
グリッドレイアウトは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 -row -column
    今回はここを解説!
    grid -row -columnとは、行と列のアイテムの位置をまとめて指定します。
  • display:grid / inline-grid 
    解説の記事ありますよ
    要素をGrid Layoutコンテナに指定できます。

grid -row -columnの使い方について

grid -row -columnの使い方について

grid: -row -columnプロパティとは、行と列のグリットアイテムの位置を指定します。
grid-template-row、-columnで作成したライン軸に、ライン番号をスラッシュ(/)で区切り、グリットアイテムにサイズを指定します。
書き方は以下のようになります

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

/*--子要素--/
.grid-itemA {
	grid-row-column: 値 / 値;
	grid-column: 値 / 値;
}
指定できる値
  • ライン番号 / ライン番号
    グリッドアイテムのライン番号で指定します。
    負の値の場合は、ライン番号を逆から数えることができます。
  • ライン番号 / span トラック数
    spanの後に半角スペース整数を指定します。
    1つ目に指定したライン番号からトラック数で指定することができます。

グリッドレイアウトを作成について

グリッドレイアウトを作成について

アイテムを行と列に配置するには、グリッドレイアウトを作成しなければなりません。
例として、上記の画像をイメージしてグリッドレイアウトを作成します。
grid-template-rows (トラックサイズ)は 3になり「100px 100px 100px」のように指定します。
grid-template-columns (トラックサイズ)は3になり「200px 200px 200px」のように指定します。

<div class="grid-container">
</div>
 /*--親要素--*/
.grid-container {
	display: grid;
	grid-template-rows: 100px 100px 100px;
	grid-template-columns: 200px 200px 200px;
}

今回は、下記の画像のアイテムA、B、C、Dを配置していきます。
左と上から順にライン番号を数え指定します。
負の値の場合は、ライン番号を逆から数え指定します。

デモを用いて、ライン番号での指定を行ないます。

ライン番号 / ライン番号

ライン番号 / ライン番号とは、グリッドアイテムのライン番号で指定します。
負の値の場合は、ライン番号を逆から数えることができます。

ライン番号をスラッシュ(/)で区切り、グリットアイテムにサイズを指定します。

行:grid-row
grid-row: 1 / 2;
列:grid-column
grid-column: 1 / 4;

アイテムAは「行:row」の1 / 2 (1から2まで)に指定します。
「列:column」の1 / 4 (1から4まで)に指定します。

行:grid-row
grid-row: 2 / 4;
列:grid-column
grid-column: 1 / 3;

アイテムBは「行:row」の2 / 4 (2から4まで)に指定します。
「列:column」の1 / 3 (1から3まで)に指定します。

行:grid-row
grid-row: 2 / 3;
列:grid-column
grid-column: 3 / 4;

アイテムCは「行:row」の2 / 3 (2から3まで)に指定します。
「列:column」の3 / 4 (3から4まで)に指定します。

行:grid-row
grid-row: 3 / 4;
列:grid-column
grid-column: 3 / 4;

アイテムDは「行:row」の3 / 4 (3から4まで)に指定します。
「列:column」の3 / 4 (3から4まで)に指定します。

※現在:スマホでは「アイテムA〜アイテムD」は、
縦に並んでおります。

ライン番号 / ライン番号

アイテムA
アイテムB
アイテムC
アイテムD
<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;
	
	/*--以下装飾--*/
	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-row: 1 / 2;
	grid-column: 1 / 4;
}
.grid-itemB {
	grid-row: 2 / 4;
	grid-column: 1 / 3;
}
.grid-itemC {
	grid-row: 2 / 3;
	grid-column: 3 / 4;
}
.grid-itemD {
	grid-row: 3 / 4;
	grid-column: 3 / 4;
}

ライン番号 / span トラック数

ライン番号 / span トラック数とは、spanの後に半角スペース整数を指定します。
1つ目に指定したライン番号からトラック数で指定することができます。

ライン番号をスラッシュ(/)で区切り、グリットアイテムにサイズを指定します。
先ほどの、「ライン番号 / ライン番号」で指定しても問題ありません。

行:grid-row
grid-row: 1;
または、
grid-row: 1 / 2でも問題ありません。
列:grid-column
grid-column: 1 / span 3;

アイテムAは「行:row」の1に指定します。
ラインが隣り合うときは、2つ目の値は省略しても問題ありません。
「列:column」の1 / span 3(1からトラックが3つ)に指定します。

行:grid-row
grid-row: 2 / span 2;
または、
grid-row: 2 / 4でも問題ありません。
列:grid-column
grid-column: 1 / span 2;
または、
grid-column: 1 / 3でも問題ありません。

アイテムBは「行:row」の2 / span 2(2からトラックが2つ)に指定します。
「列:column」の1 / span 2(1からトラックが2つ)に指定します。

行:grid-row
grid-row: 2;
または、
grid-row: 2 / 3でも問題ありません。
列:grid-column
grid-column: 3;
または、
grid-column: 3 / 4でも問題ありません。

アイテムCは「行:row」の2に指定します。
「列:column」の3に指定します。
ラインが隣り合うときは、2つ目の値は省略しても問題ありません。

行:grid-row
grid-row: 3;
または、
grid-row: 3 / 4でも問題ありません。
列:grid-column
grid-column: 3;
または、
grid-column: 3 / 4でも問題ありません。

アイテムCは「行:row」の3に指定します。
「列:column」の3に指定します。
ラインが隣り合うときは、2つ目の値は省略しても問題ありません。

※現在:スマホでは「アイテムA〜アイテムD」は、
縦に並んでおります。

ライン番号 / span トラック数

アイテムA
アイテムB
アイテムC
アイテムD
<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;
	
	/*--以下装飾--*/
	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-row: 1;
	grid-column: 1 / span 3;
}
.grid-itemB {
    grid-row: 2 / span 2;
    grid-column: 1 / span 2;
}
.grid-itemC {
	grid-row: 2;
	grid-column: 3;
}
.grid-itemD {
	grid-row: 3;
	grid-column: 3;
}

関連記事

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

まとめ

今回はこれで以上です。
次回は「グリッドレイアウトのエリアを指定」について解説します。

POINT
  • Grid Layoutコンテナとは、グリッド全体を表す要素になります。
  • グリッドアイテムとは、グリッドのエリアに配置する要素になります。
  • ライン番号 / ライン番号とは、グリッドアイテムのライン番号で指定します。
  • ライン番号 / span トラック数とは、spanの後に半角スペース整数を指定します。
  • ライン番号をスラッシュ(/)で区切り、グリットアイテムにサイズを指定します。
スポンサーリンク

SHU

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

関連記事

オススメ記事

月別アーカイブ

Portfolio

page_top