CSS グリッドアイテム

1
2
3
4
5

自分で試してみる

子要素(プロジェクト)

グリッドコンテナはグリッドプロジェクトを含んでいます。

デフォルトでは、コンテナは各行の各列にグリッドプロジェクトを持っていますが、プロジェクトのスタイルを設定して、複数の列および/または行を跨るようにすることができます。

grid-column 属性:

grid-column 属性はプロジェクトをどの列に配置するかを定義します。

プロジェクトの開始位置と終了位置を定義できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注記:grid-column 属性は grid-column-start と grid-column-end 属性のショートカット属性です。

プロジェクトを配置するには、行番号(line numbers)を参照するか、プロジェクトが跨る列数を定義するために「span」キーワードを使用することができます。

"item1" を第 1 列から始め、第 5 列の前に終わります:

.item1 {
  grid-column: 1 / 5;
}

自分で試してみる

"item1" を第 1 列から始め、3 列を覆います:

.item1 {
  grid-column: 1 / span 3;
}

自分で試してみる

"item2" を第 2 列から始め、3 列を覆います:

.item2 {
  grid-column: 2 / span 3;
}

自分で試してみる

grid-row 属性:

grid-row 属性はプロジェクトをどの行に配置するかを定義します。

プロジェクトの開始位置と終了位置を定義できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

注記:grid-row 属性は grid-row-start と grid-row-end 属性の省略形属性です。

プロジェクトを配置するには、行番号を参照したり、"span" キーワードを使用してプロジェクトが跨る行数を定義できます:

"item1" を row-line 1 から始め、row-line 4 で終わります:

.item1 {
  grid-row: 1 / 4;
}

自分で試してみる

"item1" を第 1 行から始め、2 行を覆います:

.item1 {
  grid-row: 1 / span 2;
}

自分で試してみる

grid-area 属性

grid-area 属性は grid-row-start、grid-column-start、grid-row-end、grid-column-end 属性の省略形属性として使用できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

"item8" を row-line 1 と column-line 2 から始め、row-line 5 と column line 6 で終わります:

.item8 {
  grid-area: 1 / 2 / 5 / 6;
}

自分で試してみる

"item8" を row-line 2 と column-line から始め、2行と3列を覆います:

.item8 {
  grid-area: 2 / 1 / span 2 / span 3;
}

自分で試してみる

名前付きグリッド項目

grid-area 属性もグリッド項目に名前を割り当てるために使用できます。

Header
Menu
Main
Right
Footer

グリッドコンテナの grid-template-areas 属性を使用して名前付きのグリッド項目を参照します。

item1 の名前は "myArea" で、5列のグリッドレイアウトのすべての5列を覆います:

.item1 {
  grid-area: myArea;
}
.grid-container {
  grid-template-areas: 'myArea myArea myArea myArea myArea';
}

自分で試してみる

各行はグループ引用符(' ')で定義されます。

各行の列はグループ引用符内で定義され、スペースで区切られます。

注記:点は名前のないグリッドプロジェクトを表します。

"myArea" を5列のグリッドレイアウトの2列にわたって配置します(点は名前のないプロジェクトを表します):

.item1 {
  grid-area: myArea;
}
.grid-container {
  grid-template-areas: 'myArea myArea . . .';
} 

自分で試してみる

2行を定義するには、別のグループ引用符内で2行の列を定義してください:

"item1" を2列と2行にわたって配置するには:

.grid-container {
  grid-template-areas: 'myArea myArea . . .' 'myArea myArea . . .';
} 

自分で試してみる

すべてのプロジェクトに名前をつけ、いつでも使用できるウェブページテンプレートを作成します:

.item1 { grid-area: header; }
.item2 { grid-area: menu; }
.item3 { grid-area: main; }
.item4 { grid-area: right; }
.item5 { grid-area: footer; }
.grid-container {
  grid-template-areas:
    'header header header header header header'
    'menu main main main right right'
    'menu footer footer footer footer footer';
} 

自分で試してみる

プロジェクトの順序

グリッドレイアウトを使用して、好きな場所にプロジェクトを配置できます。

HTMLコードの最初の項目は、グリッドの最初の項目として表示される必要はありません。

1
2
3
4
5
6

.item1 { grid-area: 1 / 3 / 2 / 4; }
.item2 { grid-area: 2 / 3 / 3 / 4; }
.item3 { grid-area: 1 / 1 / 2 / 2; }
.item4 { grid-area: 1 / 2 / 2 / 3; }
.item5 { grid-area: 2 / 1 / 3 / 2; }
.item6 { grid-area: 2 / 2 / 3 / 3; }

自分で試してみる

特定のスクリーンサイズの順序を変更するためにメディアクエリを使用することができます:

@media only screen and (max-width: 500px) {
  .item1 { grid-area: 1 / span 3 / 2 / 4; }
  .item2 { grid-area: 3 / 3 / 4 / 4; }
  .item3 { grid-area: 2 / 1 / 3 / 2; }
  .item4 { grid-area: 2 / 2 / span 2 / 3; }
  .item5 { grid-area: 3 / 1 / 4 / 2; }
  .item6 { grid-area: 2 / 3 / 3 / 4; }
}

自分で試してみる