目次

Grid Layout で複数のグリッドにまたがるセルを作成する - グリッドの結合 - CSS

グリッドレイアウトで複数のグリッドにまたがるセルを作成する手順を紹介します。

概要

グリッドレイアウトで複数のグリッドにまたがるセルを作成する場合は、grid-column, grid-row にセルの開始と終了の境界番号と指定することで作成できます。

書式

grid-column: (横方向のセルの開始位置の境界線番号) / (横方向のセルの終了位置の境界線番号)
grid-row : (縦方向のセルの開始位置の境界線番号) / (縦方向のセルの終了位置の境界線番号)

境界線の番号は下記のように割り当てられます。横方向はグリッドの一番左、グリッドの外枠の左の境界線が1番で右に向かって番号が1つずつ増えます。縦方向はグリッドの一番上、グリッドの外枠の上の境界線が1番となり、下に向かって番号が1つずつ増えます。

グリッドレイアウトを利用して下図のレイアウトを作成します。

解説

  • 上部のオレンジのセルはgrid-column:1/6; grid-row:1/2;
  • 左の青いセルはgrid-column:1/3; grid-row:2/4;
  • 右の緑のセルはgrid-column:3/6; grid-row:2/3;
  • 左の下の灰色のセルはgrid-column:1/3; grid-row:4/5;
  • 右の下の黄色のセルはgrid-column:3/6; grid-row:3/5;
  • 下の白いセルは
    • grid-column:1/2; grid-row:5/6;
    • grid-column:2/3; grid-row:5/6;
    • grid-column:3/4; grid-row:5/6;
    • grid-column:4/5; grid-row:5/6;
    • grid-column:5/6; grid-row:5/6;
となります。
上記のレイアウトをグリッドのセルのクラスに記述します。

コード

下記のHTML,CSSを記述します。
SimpleGrid.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="GridMerge.css" />
    <title></title>
</head>
<body>
  <div class="Container">
    <div class="GridItem1">項目1</div>
    <div class="GridItem2">項目2</div>
    <div class="GridItem3">項目3</div>
    <div class="GridItem4">項目4</div>
    <div class="GridItem5">項目5</div>
    <div class="GridItem6">項目6</div>
    <div class="GridItem7">項目7</div>
    <div class="GridItem8">項目8</div>
    <div class="GridItem9">項目9</div>
    <div class="GridItem10">項目10</div>
  </div>
</body>
</html>
SimpleGrid.css
.Container {
    display: grid;
    grid-template-columns: 160px 160px 160px 160px 160px;
    grid-template-rows: 120px 120px 120px 120px 120px;
    border: solid #ff6a00 1px;
}


.GridItem1 {
    grid-column: 1 / 6;
    grid-row: 1 / 2;
    background-color: #ff9c9c;
}

.GridItem2 {
    grid-column: 1 / 3;
    grid-row: 2 / 4;
    background-color: #ffcb70;
}

.GridItem3 {
    grid-column: 1 / 3;
    grid-row: 4 / 5;
    background-color: #7ee68d;
}

.GridItem4 {
    grid-column: 3 / 6;
    grid-row: 2 / 3;
    background-color: #7ee6e2;
}

.GridItem5 {
    grid-column: 3 / 6;
    grid-row: 3 / 5;
    background-color: #95a7f5;
}

.GridItem6 {
    grid-column: 1 / 2;
    grid-row: 5 / 6;
    background-color: #d095f5;
}

.GridItem7 {
    grid-column: 2 / 3;
    grid-row: 5 / 6;
    background-color: #e1bbfa;
}

.GridItem8 {
    grid-column: 3 / 4;
    grid-row: 5 / 6;
    background-color: #d2b1e4;
}

.GridItem9 {
    grid-column: 4 / 5;
    grid-row: 5 / 6;
    background-color: #dcd2e1;
}

.GridItem10 {
    grid-column: 5 / 6;
    grid-row: 5 / 6;
    background-color: #eee8f1;
}

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図の画面が表示されます。複数のグリッドをまたぐセルのあるレイアウトができています。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2018-11-15
iPentec all rights reserverd.