- HOME
- > BLOG CATEGORY
- 【CSS】grid-row -columnの使い方、行と列のアイテムの位置をまとめて指定する!
- お知らせ
- NEW 2024.10.05 【CSS】画像を左右交互に配置について解説!
- お知らせ
- 2024.05.16 【CSS】グラデーション色々なパターンを解説!
- お知らせ
- 2024.05.15 【WordPress】親カテゴリーの子カテゴリー一覧を表示する方法
こんな方に読んでほしい
Grid Layout
について学びたい方へ前回は、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-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: 値 / 値;
}
アイテムを行と列に配置するには、グリッドレイアウトを作成しなければなりません。
例として、上記の画像をイメージしてグリッドレイアウトを作成します。
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」は、
縦に並んでおります。
ライン番号 / ライン番号
<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の後に半角スペース整数を指定します。
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 トラック数
<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;
}
今回はこれで以上です。
次回は「グリッドレイアウトのエリアを指定」について解説します。
2024.10.05
2024.05.15
2024.05.09
2024.05.09
2024.10.05
2024.05.15
2024.05.14
2024.05.09
2024.05.09
2024.05.09
2023.06.15
2022.06.30
2020.03.22
2020.03.06
© 2024 shu-naka-blog