Webマーケターにとって、Webデザインは重要な要素です。
しかし、従来のレイアウト方法は複雑です。
レスポンシブデザインにも対応しにくいという課題がありました。
そこで注目されているのが、CSSグリッドレイアウトです。
CSSグリッドレイアウトは、2次元レイアウトを簡単に構築できる新しいレイアウト方法です。
今回の記事では、
- CSSグリッドレイアウトとは何か
- そしてWebマーケターが知っておくべきCSSグリッドレイアウトの基礎知識
を徹底解説します。
CSSグリッドレイアウトとは?
CSSグリッドレイアウトは、CSSで格子状のレイアウトを簡単に構築できる機能です。
従来のレイアウト方法と比べて、以下のメリットがあります。
- シンプルで分かりやすいコード
- レスポンシブデザインへの対応が容易
- 複雑なレイアウトも簡単に作成できる
CSSグリッドレイアウトを使うメリット
CSSグリッドレイアウトは、従来のレイアウト方法と比べて、以下の3つの大きなメリットがあります。
シンプルで分かりやすいコード
CSSグリッドレイアウトは、格子状のレイアウトを簡単に構築できます。
そのため、コードがシンプルで分かりやすくなります。
従来のレイアウト方法では?
- float
- position
などを駆使して複雑なレイアウトを作成していました。
そのため、コードが冗長になりやすかった。
さらに、メンテナンスも難しくなる。
という課題がありました。
CSSグリッドレイアウトを使えば、これらの問題を解決することができます。
レスポンシブデザインへの対応が容易
CSSグリッドレイアウトは、メディアクエリと組み合わせることが可能です。
デバイスごとに最適なレイアウトを作成することができます。
従来のレイアウト方法では?
デバイスごとにレイアウトを調整する必要がありました。
そのため、多くの場合、複数のレイアウトを用意する必要がありました。
つまり、作業量が増えていました。
CSSグリッドレイアウトを使えば、メディアクエリを使って簡単にレイアウトを調整することができます。
複雑なレイアウトも簡単に作成できる
CSSグリッドレイアウトは、複雑なレイアウトも簡単に作成することができます。
従来のレイアウト方法では?
複雑なレイアウトを作成するには、高度な技術が必要でした。
そのため、複雑なレイアウトを作成するには、デザイナーやエンジニアに依頼する必要がありました。
CSSグリッドレイアウトを使えば、高度な技術がなくても、複雑なレイアウトを簡単に作成することができます。
CSSグリッドレイアウトの基本的な使い方
CSSグリッドレイアウトを使うには、以下の3つの要素を理解する必要があります。
- コンテナ:グリッドレイアウトを適用する要素
- トラック:コンテナを分割する縦線と横線
- アイテム:グリッド内に配置する要素
基本的な構文
CSSグリッドレイアウトを使うには、以下のプロパティを使用します。
display: grid;
:要素をグリッドレイアウトとして表示するgrid-template-columns
:列の定義grid-template-rows
:行の定義
CSS
.container {
display: grid;
grid-template-columns: 1fr 3fr;
grid-template-rows: auto;
}
コードは注意してご使用ください。
この例では、コンテナを2つの列と1つの行に分割しています。
1列目は1fr、2列目は3frの幅で、行は自動的に調整されます。
アイテムの配置
アイテムは、grid-area
プロパティを使って配置します。
CSS
.item1 {
grid-area: 1 / 1 / 2 / 2;
}
.item2 {
grid-area: 1 / 2 / 2 / 3;
}
コードは注意してご使用ください。
この例では、item1
は1行1列から2行2列まで、item2
は1行2列から2行3列までを占有します。
その他の機能
CSSグリッドレイアウトには、他にもさまざまな機能があります。
grid-gap
:アイテム間の余白align-items
:アイテムの垂直方向の配置justify-items
:アイテムの水平方向の配置
これらの機能を組み合わせることで、より複雑なレイアウトを作成することができます。
CSSグリッドレイアウトの活用例
2カラムレイアウト
CSS
.container {
display: grid;
grid-template-columns: 1fr 3fr;
}
コードは注意してご使用ください。content_copy
3カラムレイアウト
CSS
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
コードは注意してご使用ください。content_copy
ヘッダー、メインコンテンツ、フッターのレイアウト
CSS
.container {
display: grid;
grid-template-areas:
"header header"
"main main"
"footer footer";
}
コードは注意してご使用ください。
メディアクエリと組み合わせる
CSSグリッドレイアウトは、メディアクエリと組み合わせることで、デバイスごとに最適なレイアウトを作成することができます。
CSS
@media (max-width: 768px) {
.container {
grid-template-columns: 1fr;
}
}
コードは注意してご使用ください。