簡単すぎてびっくり!CSSグリッドをレスポンシブデザインに活用するための詳細手順を紹介
Webデザインを行う際に、複数の閲覧デバイスを想定してデザインを行うのは今では当たり前になっています。オンラインでのWebページの閲覧の4分の3はモバイルなので、モバイルでも快適に閲覧できるように、デザインを考えていかなければなりません。
Webデザインで段組を行う手法はさまざまありますが、現時点で最も手っ取り早いのはCSSグリッドを利用する方法です。CSSグリッドは見た目の段組を想定してコーディングできるので、より直感的な段組を行うことができます。
そこで今回は、CSSグリッドをレスポンシブデザインに活用するための詳細手順を紹介していきます。何かと概念的なCSSグリッドですが、ここでレスポンシブ対応するにはどうすればよいか、まとめておきましょう。
CSSグリッドでレスポンシブデザインを実装しよう
イメージ画像
floatやflexboxのような「1次元」レイアウトに対して、「2次元レイアウト」と呼ばれるCSSグリッドを使ったレイアウトを使うと、デザイナーはより直感的にデザインできます。
参考:
これで分かった!10分でほとんど理解できる「CSSグリッド」の基礎
しかし、CSSグリッドを使っても使わなくても、レスポンシブデザインに対応させるのは骨の折れる作業には変わりありません。ブレイクポイントを設定して、複数のレイアウトを考えなければならないからです。その時に、Webデザインでの段組みに慣れていないと、コードを見るたびに混乱してしまう自体が発生します。
イメージ画像
ただ、CSSグリッドは従来のレイアウト手法よりはスムーズに段組みを行えるはずです。穴の空いたパズルにブロックを当てはめる感覚なので、慣れればこちらのほうが素早くデザインできます。
レスポンシブデザインに対応させるには*「media queries」(メディアクエリ)*を使う手法が一般的ですが、今回はそれ以外のアプローチもご紹介していきます。
media queriesを使う手順
イメージ画像
レスポンシブデザインでWebサイトを作成する場合、最も簡単な方法はモバイルレイアウトを先に作っていくことです。グリッドコンテナの中に入れていくグリッドアイテムが、 CSSグリッド適用前だと縦1列に並ぶので、イメージしやすいからです。
1カラムで横幅を最大まで広げるには、gridクラスを指定したdivタグに対して、下記のCSSを指定すればOKです。
grid {
display: grid;
grid-template-columns: 1fr;
}
必要なのはたったの4行です。もしグリッド間に空間を開けたい場合、「margin」や「padding」プロパティを指定するよりも、*「grid-gap」プロパティを加えたほうがシンプルでしょう。画像を横幅ぴったりに表示させる場合は、子要素の画像に「object-fit: cover;」*を指定します。
デスクトップでは、シングルカラムではなくマルチカラムになることが多いでしょう。その際に、media queriesを使って最低幅となるブレイクポイントを指定します。
@media (min-width: 40em) {
.grid {
grid-template-columns: 2fr 1fr;
}
}
この際に注意しておきたいことをいくつか挙げてみましょう。まず、ブレイクポイントはpixelおよびrem指定よりもem指定の方が好ましいです。これはPX, EM or REM Media Queries?に詳しく書かれていますが、以下の参考記事で和訳されています。
参考:
CSSMedia Queriesで使う単位はpx, em, remのどれが適しているか検証 -px指定は注意が必要 | コリス
また、デスクトップ画面での表示で、Gridアイテムをバラバラにしたい場合は、細心の注意を払いましょう。コンテンツを入れ替えて表示する最も簡単な方法は、
(1) 「グリッドに名前をつける」
(2)「グリッドにコンテンツを挿入する」という方法です。
例えば、デスクトップ画面で「1:2:1」の幅で表示する場合、media queriesは以下のように指定します。
@media (min-width: 40em) {
.grid {
grid-template-columns: 1fr 2fr 1fr;
grid-template-areas:
"header header menu"
"navigation content ad"
"footer footer footer";
}
}
続いて、グリッドにコンテンツを挿入していきます。グリッドの名前がすでに*「grid-template-areas」*プロパティで付けられていれば、あとは簡単です。
.header {
grid-area: header;
}
.menu {
grid-area: menu;
}
// 以下同様
これで、CSSグリッドをmedia queriesで切り替えることが可能になります。
auto-fitを使う手順
コンテンツの入れ替えが必要な場合はmedia queriesを利用するのが一般的ですが、ブログの記事一覧のようにグリッドアイテムの順番を変える必要がない場合は、media queriesを使わずにレイアウトを整えることも可能です。
これを実現するには、グリッドコンテナの*「grid-template-columns」プロパティに、「repeat(auto-fit, [ブレイクポイント])」*を指定します。この場合、「repeat」関数でブレイクポイントを複数指定しているので、例えばブレイクポイントに10emを指定すれば、10em・20em・30em…と増えていきますが、ブレイクポイントを1箇所だけにしたい場合は「repeat」関数を取り外します。
grid {
display: grid;
grid-template-columns: repeat(auto-fit, 10em);
}
これで、10emの倍数をブレイクポイントとして、幅が変わるごとにコンテンツの数が変わります。
media queries内でコンテンツを流していく方法は、ある程度「固定」されたレイアウトとなりますが、auto-fitはリキッドレイアウトに近いと言えます。どちらがいいということではなく、適材適所で臨機応変に使い分けていただくとよいでしょう。
まとめ
CSSグリッドに関するプロパティは少し長いので、非常に面倒に感じるかもしれません。しかし、レスポンシブデザインへの対応は非常に簡単であることがご理解いただけたでしょう。
一時期flexboxも流行しましたが、CSSグリッドはflexboxの持つ課題も解決しているので、今後のCSSグリッドはWebデザイナーの必須技術となります。仕組みを理解して、デザインに活かしていきましょう。
- デバイス
- デバイスとは「特定の機能を持つ道具」を表す語で、転じてパソコンを構成するさまざまな機器や装置、パーツを指すようになりました。基本的に、コンピューターの内部装置や周辺機器などは、すべて「デバイス」と呼ばれます。
- オンライン
- オンラインとは、通信回線などを使ってネットワークやコンピューターに接続されている状態のことをいいます。対義語は「オフライン」(offline)です。 現在では、オンラインゲームやオンラインショップなどで、インターネットなどのネットワークに接続され、遠隔からサービスや情報などを利用できる状態のことを言う場合が多いです。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- ブログ
- ブログとは、ホームページの一種です。運営者はブログシステムに登録し、利用開始をすることで、ホームページ制作のプログラム技術を修得する必要なく、本文のみを投稿しつづければ、公開・表示はおろかページの整理や分類なども効率的に行えるシステムを言います。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- 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・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング