アイデア次第!「CSSグリッド」を使ってレスポンシブ対応の3カラムサイトを作ってみよう
Flexboxを使ったレイアウト手法に代わって、新たに注目を集めている手法がCSSグリッドを使ったレイアウトです。
従来のfloatを使った回り込みレイアウトやFlexboxを使ったレイアウト手法は、いわば「1次元的」なレイアウトでした。それに対して、縦横に配置する*「2次元レイアウト」*であるCSSグリッドは、Webデザインのパラダイムを大きく変えたという点で重要な役割を担っています。
CSSグリッドは、ほぼ全てのモダンブラウザで使用できるので、2018年以降もWebデザインにおけるレイアウト手法より定着していくはずです。しかし、これまで出てきている多くの情報が、実践的なものというよりは、どちらかと言えば概念的なものばかりです。
そこで今回は、「CSSグリッド」を使ったレスポンシブ対応の3カラムサイトのチュートリアルをご紹介していきます。
CSSグリッドをより実践的なサイト制作に当てはめてみることで、CSSグリッドによるサイト制作のイメージが掴めるのではないでしょうか。
STEP1. レイアウトを書き出す
1-1. 必要なコンテンツとコンテナを書き出す
画像引用元:Stock.io
ここからは、CSSグリッドを使ったレイアウト手法について見ていきます。
この手法においてどこがポイントかというと、大切なのはグリッドに当てはめていくコンテンツを書き出していくことです。何を盛り込むかが決まらなければ、レイアウト自体が決まらないので、先にコンテンツを列挙してしまいましょう。
モバイル版とデスクトップ版のどちらのコンテンツを書き出せばいいのか迷うかもしれませんが、一旦はデスクトップ版のホームページを想定して書いてみてください。モバイル版よりも、デスクトップ版のWebサイトの方が、一般的には表示するコンテンツ量が多くなるからです。
この時、ナビゲーションやヒーローヘッダー、広告エリアなども全て書き出していきます。
1-2. デスクトップファースト vs. モバイルファースト
画像引用元:Stock.io
先述のように、レスポンシブ対応のWebサイトを作成する場合、デスクで座って閲覧する*「デスクトップ版サイト」と外出中や移動中に見る「モバイル版サイト」*では、表示する項目が変わってくるはずです。
おそらく、多くの場合、表示幅が狭い「モバイル版サイト」では「デスクトップ版」で表示していたもののいくつかを非表示にすることになるでしょう。
近年、スマートフォンやタブレットからのインターネットアクセスが増加したことで、モバイルデザインにフォーカスする*「モバイルファースト」*が叫ばれています。モバイルファーストはモバイルデザインからデザインすることだと捉えられている動きもありますが、実際のところはフリック操作などモバイル環境を考慮して、必要最小限の情報を適切なレイアウトで設計することにほかなりません。
ちなみに、CSSグリッドでレスポンシブサイトをデザインする場合には、モバイル版のサイトをデザインしてからデスクトップ版のサイトに当てはめていくのがデザインしやすい方法になります。
1-3. レイアウトをスケッチ
画像引用元:Stock.io
次に、デスクトップ版とモバイル版の両方をスケッチしていきます。
大抵の場合、モバイル版のWebサイトはシングルカラムで済みますが、デスクトップ版は複数カラムになるかと思います。CSSグリッドレイアウトの場合は、どの順で配置するかは後から考えればいいので、ひとまず自由にレイアウトをスケッチしてみましょう。
STEP2. グリッドを考える
2-1. グリッドの考え方
CSSグリッドはTABLEレイアウトやFlexboxレイアウトなどの様々なグリッドシステムに比べて、これまで以上にシンプルな考え方でWebサイトを構築することができます。
より簡単に言えば、CSSグリッドシステムを構築するのに必要なのは、以下の2つだけです。
1. グリッドのデザイン
2. 異なるViewportでグリッドがどのように振る舞うか
グリッドのデザインについてはSTEP1で見てきたので、STEP2で*「異なるViewportによる挙動」*を設定していきます。
2-2. モバイル版レイアウトを作成
レスポンシブデザインでWebサイトを作る際に、最も簡単な方法はモバイル版のレイアウトを先に作っていくことです。理由はいくつか挙げられますが、1番はグリッドコンテナの中に入れていくグリッドアイテムが、CSSグリッド適用前だと1カラムに並ぶので、イメージしやすいからです。
ただし、デスクトップ版では表示するけれど、モバイル版では表示しないものについては、一旦フッターエリアの下に入れておきましょう。
2-3. グリッドのベースを作成
続いて、デスクトップ版のカラムレイアウトを作成してみましょう。
まずは、親要素であるグリッドコンテナーを配置して、縦横に線を分割してみましょう。
最初に、display: gridを指定することで親要素をグリッドコンテナー化します。次に、grid-template-columnsプロパティを指定して縦の線を引っ張ります。均等に分割するために、*「fr」(fractions)*という単位を利用できます。
ここでは、チュートリアルとして3x3のカラムを作成していきます。
grid-template-columns: 1fr 2fr 1fr;
縦と同様に、横の線をgrid-template-rowsプロパティで指定していきます。
grid-template-rows: 100px auto 100px;
これで、3x3のカラムが完成しました。
ちなみに、任意ですが、grid-template-areasプロパティを使ってエリアに名前を付けることができます。
例えば、下記のような場合では、9分割したグリッドコンテナーのエリアに名前を付けています。
.site {
display: grid;
grid-template-colmn: 1fr 2fr 1fr;
grid-template-rows: 100px auto 100px;
grid-template-areas:
"header header menu"
"navigation content ad"
"footer footer footer"
}
このように指定すると、下図のように名前が付けられたことになります。同じ名前を付けているエリアがあるという点は、非常に重要です。
2-4. グリッドにコンテンツを流し込む
続いて、グリッドにコンテンツを流し込んでいきます。
グリッドの名前がすでにgrid-template-areasプロパティで付けられていれば、あとは簡単です。
.header {
grid-area: header;
}
.content {
grid-area: content;
}
// 以下同様
このようにすれば、先ほど付けたタイトルにグリッドを流し込むことができます。
2-5. メディアクエリで操作
最後に、レスポンシブの挙動を加えていきます。
ここでは、仮にブレイクポイントを800pxにして考えていきます。考え方について重要な点は、次の2点です。
1. 800px以上ではdisplay: gridを、それ以外ではdisplay: boxを適用
2. 800px以上で表示するコンテンツはgrid-areaを正確に指定、それ以外ではgrid-area: autoにして、表示しないコンテンツはdisplay:noneを指定
こうすることで、800px以上での挙動とそうではない場合をわけることができます。
まとめ
今回は、実際のレスポンシブデザインのWebサイトの作成を想定したチュートリアルをご紹介しました。
CSSグリッドは革新的だとはいえ、まだ制作現場では使われているところも少ないかもしれません。しかし、CSSグリッドでの段組に慣れれば、制作スピードが早まるのは間違いありません。
ぜひ、CSSグリッドを使ったサイト作りに挑戦してみてはいかがでしょうか。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- ナビゲーション
- ナビゲーションとは、もともと「目的地までの経路」や「道順案内」を意味する英単語です。しかし、インターネットの分野では、ホームページにある主要コンテンツをまとめたリンクを指します。これがあることで、ユーザーは目的のページがどこにあるかを短時間で見つけることができます。また、検索エンジンのクローラー(検索ロボット)に対して、効率的にサイト内を巡回させるという効果もあります。 ナビゲーションには「グローバルナビゲーション」と「ローカルナビゲーション」の二つがあります。
- ヘッダー
- WEBページの上部スペースに位置し、どのページが開かれても常に共通して表示される部分です。ヘッダーの役割は、まずWEBページを目立たせ、ブランドイメージを訴求することにあります。会社のロゴなども通常はここに置きます。また目次となるメニューを表示し、自分が今どのページにいるかを分からせることもあります。
- 広告
- 広告とは販売のための告知活動を指します。ただし、広告を掲載するための媒体、メッセージがあること、広告を出している広告主が明示されているなどの3要素を含む場合を指すことが多いようです。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- タブレット
- タブレットとは、元々「板状のもの」「銘板」といった意味の単語です。パソコンの分野で単にタブレットといえば、「ペンタブレット」や「タブレット型端末」などの板状のデバイス全般を指します。ここでは主にタブレット型端末について説明していきます。
- インターネット
- インターネットとは、通信プロトコル(規約、手順)TCP/IPを用いて、全世界のネットワークを相互につなぎ、世界中の無数のコンピュータが接続した巨大なコンピュータネットワークです。インターネットの起源は、米国防総省が始めた分散型コンピュータネットワークの研究プロジェクトARPAnetです。現在、インターネット上で様々なサービスが利用できます。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- タイトル
- ホームページのソースに設定するタイトル(title)とは、ユーザーと検索エンジンにホームページの内容を伝えるためのものです。これを検索エンジンが認識し検索結果ページで表示されたり、ユーザーがお気に入りに保存したときに名称として使われたりするため、非常に重要なものだと考えられています。「タイトルタグ」ともいわれます。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング