グリッドセルに名前をつけて領域を指定する
2日間 Grid Layout の学習に取り組み、昨日はグリッド領域を個別に指定する方法を確認した。今日はグリッドセルに名前をつけてグリッド領域を指定する方法を調べた。
用語、グリッドセル と グリッド領域 は違うので注意。
グリッドセル
グリッドセル は、グリッド上の最も小さな単位です。
グリッドセルはグリッドをつくった時点で存在するもので、
グリッド領域
アイテムは、行と列の複数のセルにまたがって配置でき、グリッド領域 を作ることができます。
グリッド領域は開発者が指定するもの。
デモのようにグリッドセルに名前をつけるには grid-template-areas
を使う。この名前をつけたセルを grid-area
プロパティで指定することで、グリッド領域を決める。
- 親要素
grid-template-areas
... グリッドセルに名前をつける
- 子要素
grid-area
... 名前のつけたセルを使ってグリッド領域を決める
.grid { display: grid; grid-template-areas: "header header header" "nav main main" "nav main main" "footer footer footer"; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); } .grid__header { grid-area: header; background-color: red; } .grid__nav { grid-area: nav; background-color: blue; } .grid__main { grid-area: main; background-color: yellow; } .grid__footer { grid-area: footer; background-color: green; }
ここで指定している grid-template-areas
のグリッドセルの配置と名前のイメージはつぎのようになる。
以上でグリッドセルに名前をつけてグリッド領域を指定する方法の紹介はおしまいだが、grid-template-areas
と grid-area
の指定方法はすこし特殊に感じた。参考にした記事に「アスキーアートのように視覚的にエリアを記述」とあったが、まさにそんな感じ。