グリッドしたい(display: block grid)

.container {
    display: block grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

グリッドレイアウトは、2次元に並べるレイアウト方式です。 親要素を「グリッドコンテナー」、 子要素を「グリッドアイテム」と呼びます。

段組したい(grid-template-columns)

.container {
    display: block grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

grid-template-columnsで、グリッドコンテナーの列数と列幅を指定できます。 repeat(3, 1fr)は、3列を指定し、それぞれの列幅を1fr(フレックスレコード)で均等にします。

.container {
    display: block grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 1rem;
}

grid-template-columnsで、列数と列幅を個別に指定することもできます。 1fr 2fr 1frは、3列のうち真ん中の列が左右の列の2倍の幅になるように指定しています。

行組したい(grid-template-rows)

.container {
    display: block grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 100px 200px;
    gap: 1rem;
}

grid-template-rowsで、グリッドコンテナーの行数と行高を指定できます。 100px 200pxは、1行目の高さが100px、2行目の高さが200pxになるように指定しています。

割り付けしたい(grid-template-areas / grid-area)

.container {
    display: block grid;
    grid-template-columns: 1fr 2fr 1fr;
    grid-template-rows: 100px 200px;
    grid-template-areas:
        "header header header"
        "sidebar main main"
        "footer footer footer";
    gap: 1rem;
}
.header {
    grid-area: header;
}
.sidebar {
    grid-area: sidebar;
}
.main {
    grid-area: main;
}
.footer {
    grid-area: footer;
}

grid-template-areasで、グリッドコンテナーの行と列に名前を付けて、グリッドアイテムを割り付けることができます。

親要素にgrid-template-areasを指定し、子要素にgrid-areaを指定することで、グリッドアイテムの位置を決めることができます。

リファレンス