INDEX
目次
HTML/CSS入門編 17章 レスポンシブデザインの基本を学ぼう
本章では、Webサイトのデザインをさまざまな機器(デバイス)に対応させる技術であるレスポンシブデザインのコーディング方法を学びます。
【17-1】レスポンシブデザインとは?
レスポンシブデザインの概要を知ろう
- レスポンシブデザイン(Responsive Design)とは、Webデザインの制作手法のひとつです。
- PC、タブレット、スマートフォンなど、さまざまな種類や画面サイズの機器(デバイス)に対して、単一のHTMLファイルでブラウザ表示を最適化するWebサイトのデザインのことを、レスポンシブデザインといいます。
- まずは、下の【画面収録】レスポンシブデザインのデモ動画を見て、レスポンシブデザインのWebサイトがどのようなものかを、確認してみましょう。
■ デバイスごとに異なるデザイン
【画面収録】レスポンシブデザインのデモ動画
- ブラウザウインドウの幅を徐々に狭めていくと、途中で2回デザインが自動的に切り替わることを確認できると思います。
- 反対に、ブラウザ幅が狭い状態から徐々に広げていく過程でも、デザインが2回切り替わったことが確認できたと思います。
- 最も画面幅が広い状態で表示されるデザインがPC用のデザインです。
- 中間の、ヘッダーナビゲーションが隠れ、右上に白いハンバーガーメニュー(三本線の開閉式メニュー)が表示されるデザインがタブレット(iPadなど)用のデザインです。
- そして、最も画面幅が狭くなったときのデザインがスマートフォン用のデザインです。
- 画面幅に応じて適切なCSSが読み込まれる設定がされているために、このような変化が起こるのです。
- このサイトは、標準的かつ模範的な設計仕様のもとに、レスポンシブデザインが実現されています。
- 現在のWebサイトは、レスポンシブデザインのコーディングを行い、さまざまな種類やサイズのデバイスに対して、レイアウトや画像・文字のサイズ、UI(ユーザー・インターフェース)の操作性を最適化させることが常識となっています。
- したがって、Webデザイナー・コーダーを目指す人にとって、レスポンシブデザインのコーディング技術を身につけることは必須であると言えるでしょう。
重要:設計アプローチ「モバイルファースト」
レスポンシブサイトを制作する際、まずスマートフォン用のCSSを基本として記述し、その後、メディアクエリを使ってタブレット、PCと画面幅が広くなるにつれてスタイルを追加・上書きしていく手法を「モバイルファースト」と呼びます。
-
なぜ重要か:
- スマートフォンの利用者が大多数を占めるため、モバイル体験の質が最も重要視されます。
- Googleの検索順位評価もモバイル版のサイトが基準となっており、SEOの観点からも有利です。
- 小さい画面から作り始める方が、要素の追加やレイアウトの調整がしやすく、コードがシンプルになる傾向があります。
-
実装方法:
モバイルファーストでは、まずスマートフォン用のスタイルを記述し、@media (min-width: ...) を使って、指定した幅「以上」になった場合のスタイルを追加していきます。
現在のWeb制作ではこの「モバイルファースト」が主流のアプローチです。
【17-2】レスポンシブコーディングの手順を学ぼう
- レスポンシブデザインのコーディングは、先述したように、PC、タブレット、スマートフォンなど、異なる画面サイズや解像度を持つデバイスで、Webサイトが最適に表示されるように行います。
- 具体的には、各デバイスに向けて異なるレイアウトやスタイルを適用するために、CSSのメディアクエリという書式を使用します。
- メディアクエリを用いることで、ブラウザの画面幅に応じて、同一のHTMLファイルに対して適用されるCSSのコードを切り替え、デバイスごとに最適なスタイリングの制御を行います。
- レスポンシブデザインのサイトをコーディングするために必要な知識は、それほど多くはありません。
- 右の基本的なレスポンシブコーディングの手順を、ポイントを押さえながら解説していきます。
それでは、レスポンシブコーディングの基本を学ぶための簡単なサンプルを作成してみたいと思います。
演習の準備として、「start」フォルダ内のindex.htmlをエディターで開いておきましょう。
1. ビューポート(viewport)の指定をする
ビューポートと仮想幅
- ビューポートとは、モバイル端末のブラウザにおけるWebページの表示エリアのサイズ(幅・高さ)のことです。
- 通常、レスポンシブデザインに対応していないPC向けのWebサイトをスマートフォンで閲覧すると、ページ全体が自動的に縮小されて表示されます。
- 例えば、コンテンツ幅が950pxのWebサイトが、ビューポート幅320~430pxのiPhoneブラウザで表示されると、そのまま縮小されてぴったりと画面に収まります。
- これは、iPhoneなど多くのモバイル端末のブラウザ幅が、仮想的に980pxに初期設定されているためです。
- つまり、スマートフォンブラウザの幅は320~430pxと機種により異なりますが(iPhoneのビューポート一覧表参照)、Webページを表示するときは一律980pxの幅として扱われるということです。
- この仮想的な幅のことを、正確にはレイアウトビューポート(layout viewport)と呼びますが、ビューポート(viewport)と混同しやすいので、本教材では仮想幅と呼ぶことにします。
- この仮想幅は、iPhone以外のAndroid端末では1024pxが設定されている機種もあります。
- このようにWebサイト自体が縮小された場合、とくに文字サイズなどは小さくなり過ぎ、可読性や視認性が損なわれます。
- そこで、レスポンシブ対応を行うことにより、モバイル端末での表示を最適化する必要があるのです。
■ iPhoneのビューポート一覧表
モデル |
ビューポート |
---|---|
iPhone 8 / SE (2/3) |
375 × 667 |
iPhone X / XS / 11 Pro |
375 × 812 |
iPhone XR / 11 |
414 × 896 |
iPhone XS Max / 11 Pro Max |
414 × 896 |
iPhone 12 mini |
375 × 812 |
iPhone 12 / 13 / 14 |
390 × 844 |
iPhone 12/13 Pro Max |
428 × 926 |
iPhone 14 Plus |
428 × 926 |
iPhone 14 Pro Max |
430 × 932 |
iPhone 15 / 15 Pro |
393 × 852 |
iPhone 15 Plus / Pro Max |
430 × 932 |
iPhone 16 |
393 × 852 |
iPhone 16 Plus |
430 × 932 |
【図解】ビューポートと仮想幅
metaタグで仮想幅をビューポートに合わせる
- レスポンシブデザインで モバイル端末向けのコーディングを行う際には、仮想幅の設定が、デバイス本来の画面幅(ビューポート)と一致するように設定を変更する必要があります。
- なぜなら、この設定を行わないと、モバイル端末向けにCSSで要素のサイズ指定を行ったとしても、初期設定の仮想幅を基準として自動的に縮小されてしまい、意図したサイズで表示されなくなるからです。
- そのために、 HTMLのmetaタグを使ってビューポートの設定を行い、各デバイスの画面幅に合わせたスタイリングができるようにします。
■ viewportの指定方法
headタグ内にmetaタグを記述します。
以下の設定方法がGoogleで推奨されています。
レスポンシブコーディング時には必須のコードです。
以下の設定方法がGoogleで推奨されています。
レスポンシブコーディング時には必須のコードです。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
HTML/CSS入門編 サンプルコード17-1
■ viewportを指定する
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>レスポンシブデザインの基本を学ぼう</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <h1>レスポンシブデザインの基本を学ぼう</h1> </body> </html>
HTML/CSS入門編 サンプルコード17-2
■ metaタグによるビューポートの指定
2. ブレイクポイント(Break points)を決める
ブレイクポイント(Break points)とは?
- レスポンシブデザインは、ブラウザの画面幅(ビューポート)に応じて適切なCSSのコードに自動で切り替わる設定をすることにより実現します。
- このとき、デザインが切り替わる画面幅のpx数値をブレイクポイントといいます。 ブレイクポイントの数、また何pxの地点に設定するかには決まりがなく、制作者が自由に判断します。
-
判断の基準としては、
- 制作時に主流となっているデバイスのサイズ(スマホ・タブレット・PCなど)
- 制作するサイトのレイアウトやデザイン構造
- デバイスの種類や画面サイズは年々変化しているため、最新のシェア情報を確認しつつ、その時代に合わせたブレイクポイントを柔軟に設定することが重要です。
- なお、おおまかな2025年時点でのブレイクポイントの目安は以下の通りですが、最終的にはサイトごとのデザインに合わせて調整しましょう。
■ 各デバイスごとのブレイクポイントの目安
デバイスの種類 |
ブレイクポイント |
---|---|
PC |
1024px 〜 |
タブレット |
481px〜1023px |
スマートフォン |
〜480px |
※PC、タブレット、スマートフォン用にCSSを切り替える場合、ブレイクポイントの数は2つになります。
※サイトのデザインによっては、ノートPCとデスクトップPCの間にもブレイクポイントを設けるケースもあります。
※また、PCとモバイル端末の2パターンでCSSを切り替える場合は、ブレイクポイントは1つになります。
※サイトのデザインによっては、ノートPCとデスクトップPCの間にもブレイクポイントを設けるケースもあります。
※また、PCとモバイル端末の2パターンでCSSを切り替える場合は、ブレイクポイントは1つになります。
【図解】ブレイクポイント例
3. メディアクエリ(Media Queries)を記述する
- メディアクエリとは、レスポンシブデザインを実現するためのCSSの仕様で、異なる画面サイズ(幅)に応じて適切なCSSを読み込んで適用する機能を実装できます。
- これにより、PC、タブレット、スマートフォンなどの画面幅に合わせてWebページのデザインを自動的に切り替えることができます。
- 実際にメディアクエリを記述してみましょう。以下のレスポンシブ仕様でメディアクエリを記述し、ブレイクポイントを設定します。
■ サンプルページのレスポンシブ仕様
デバイスの種類 |
ブレイクポイント |
---|---|
PC |
1024px以上 |
タブレット |
481px以上 |
スマートフォン |
すべての画面幅(基本のスタイル) |
- 上記のレスポンシブ仕様をメディアクエリの書式で表現したものが、次のコードです。
- style.cssに記述しましょう。
■ サンプルページのメディアクエリ(style.css)
/* ここにスマホ共通のCSSを書く */ /* タブレット以上 */ @media (min-width: 481px) { /* ここにタブレット用のCSSを書く */ } /* PC以上 */ @media (min-width: 1024px) { /* ここにPC用のCSSを書く */ }
HTML/CSS入門編 サンプルコード17-3
■ メディアクエリの基本書式
/* 基本書式 */ @media (min-width または max-width による条件の設定) { /* 条件に当てはまるときに適用されるCSSをここに記述する */ }
メディアクエリの基本書式
条件が複数ある場合の書式
/* 条件が複数ある場合 */ @media (条件1の設定) and (条件2の設定) { /* 全ての条件に当てはまるときに適用されるCSSをここに記述する */ }
条件が複数ある場合の書式
4. 各デバイスに最適化したCSSコーディングを行う
メディアクエリの設定ができたら、あとは各デバイス用にスタイル設定をしていきます。
今回作成するサンプルページでは、h1要素を次の仕様でスタイリングします。
今回作成するサンプルページでは、h1要素を次の仕様でスタイリングします。
メディアクエリ |
スタイル設定 |
---|---|
PC用 |
文字サイズ 40px
文字色 #dd0000(赤) |
タブレット用 |
文字サイズ 30px
文字色 #00dd00(緑) |
スマートフォン用 |
文字サイズ 18px
文字色 #0000dd(青) |
■ style.css
/* スマホ(基本) */ h1 { font-size: 18px; color: #0000dd; } /* タブレット以上 */ @media (min-width: 481px) { h1 { font-size: 30px; color: #00dd00; } } /* PC以上 */ @media (min-width: 1024px) { h1 { font-size: 40px; color: #dd0000; } }
HTML/CSS入門編 サンプルコード17-4
■ ブラウザプレビュー(ブラウザ幅1024px以上のとき)
■ ブラウザプレビュー(ブラウザ幅481px以上、1023px以下のとき)
5. ブラウザプレビューをする
デベロッパーツールを使って確認しよう
デベロッパーツールとは、Google Chromeに標準で搭載されている開発者用の検証ツールのことです。
HTML/CSSの検証や仮編集などの制作者にとって便利な機能が装備されています。
ここではレスポンシブデザインの画面表示を確認するためのモードの使い方を解説します。
HTML/CSSの検証や仮編集などの制作者にとって便利な機能が装備されています。
ここではレスポンシブデザインの画面表示を確認するためのモードの使い方を解説します。
レスポンシブデザインでは、メディアクエリでビューポート幅などに応じてCSSを切り替えます。
作業中のPCでも、ブラウザのウィンドウを狭めればレイアウトの切り替えを確認できます。
デスクトップ版の Chrome や Safari は約320px前後まで縮小できるため、たとえば「max-width: 480px」のブレークポイントも通常のプレビューで発火します。
ただし、実機に近い検証(デバイスピクセル比やタッチ操作、画面の向き変更、ユーザーエージェント差異、回線速度の制限など)まで行うには、Chrome DevTools の「デバイスモード(Toggle device toolbar)」を使うのが確実です。
作業中のPCでも、ブラウザのウィンドウを狭めればレイアウトの切り替えを確認できます。
デスクトップ版の Chrome や Safari は約320px前後まで縮小できるため、たとえば「max-width: 480px」のブレークポイントも通常のプレビューで発火します。
ただし、実機に近い検証(デバイスピクセル比やタッチ操作、画面の向き変更、ユーザーエージェント差異、回線速度の制限など)まで行うには、Chrome DevTools の「デバイスモード(Toggle device toolbar)」を使うのが確実です。
【画面収録】chromeのデベロッパーツールによるレスポンシブデザインのブラウザプレビュー
デベロッパーツールで検証しよう
■ デベロッパーツールの起動方法
まずは、デベロッパーツールの起動方法を解説します。
- 検証するHTMLファイルをブラウザで表示してから、Google Chromeの右上の縦3点メニューアイコン(⋮)をクリックし、「その他のツール」→「デベロッパーツール」を選びます。
- ショートカットキーもありますので、覚えておくと効率的にコーディング作業を行うことができるでしょう。
■ デベロッパーツールを起動する
■ 起動したデベロッパーツール
■ デバイスモードに切り替えよう
- デバイスモードは、デベロッパーツール上でスマートフォンやタブレットなどモバイル端末での見え方をシミュレーションできる機能です。
- デバイスモードへの切り替えは、デベロッパーツールの左上のデバイスモードアイコンをクリックすることにより実行できます。
- デバイスモードに切り替えると、Webページの表示エリアがモバイル端末で見たときのように狭くなります。
- ショートカットキーもありますので、覚えておくと便利です。
■ デバイスモードに切り替える
■ デバイスモードの画面表示
■ レスポンシブ表示モードや機種別表示モードに切り替えよう
- デバイスモード上部のプルダウンメニューから、レスポンシブの表示モードと機種別の表示モードに切り替えることが可能です。
- レスポンシブ表示モードは右、右下、下のつまみをドラッグすることにより、画面サイズを変更できます。
- また、数値入力ボックスに直接縦・横のサイズを入力することで画面サイズを変更することもできます。
- 機種別の表示モードは、プルダウンから特定のモバイル端末の機種名を選ぶと、その機種での見え方を確認することができます。
■ レスポンシブモードや機種別表示モードに切り替える
【画面収録】画面サイズを変更する
Google Chromeの拡張機能を使ってレスポンシブの表示確認をしよう
- デベロッパーツールのデバイスモードを使ってレスポンシブコーディングのプレビューを行うほかには、Google Chromeの拡張機能を使用してプレビューを行う方法があります。
- ここでは、モバイルシミュレーター - レスポンシブテストツールの使い方を説明します。
■ モバイルシミュレーター - レスポンシブテストツール
■ 拡張機能(モバイルシミュレーター)を追加する
■ モバイルシミュレーターでブラウザプレビューをしてみよう
- 拡張機能の追加が完了したら、モバイルシミュレーターでブラウザプレビューを行ってみましょう。
- 右上の モバイルシミュレーターの起動アイコン をクリックすると、モバイルシミュレーターが起動し、モバイル端末での表示状態を確認できます。
■ モバイルシミュレーターの起動アイコン
- 右側の 「デバイスの変更」アイコン をクリックすると、さまざまなモバイル端末の機種を選択できるようになります(一部の機種での確認には有料プランの契約が必要)。
■ 「デバイスの変更」アイコン
■ モバイルシミュレーターでブラウザプレビューをする
※プロのWeb制作者として案件を請け負う際には、最終的には実機でのテストをきちんと行うことが推奨されますが、学習している現段階では、デベロッパーツールや拡張機能によるプレビュー方法で十分ですので、これらを活用して制作を行なってください。
ここまでがレスポンシブデザインの基本です。
本章を何度も読み返して、基本的な仕組みや最低限必要なコードの意味を理解しましょう。
本章を何度も読み返して、基本的な仕組みや最低限必要なコードの意味を理解しましょう。
これで「HTML/CSS入門編 17章 レスポンシブデザインの基本を学ぼう」の解説を終わります。