Webフロントエンド - 基礎

レスポンシブデザイン れすぽんしぶでざいん

メディアクエリブレークポイントフルードグリッドモバイルファーストビューポートCSS
レスポンシブデザインについて教えて

簡単に言うとこんな感じ!

スマホでもPCでもタブレットでも、画面サイズに合わせてWebページのレイアウトが自動でいい感じに変わる仕組みだよ!1つのページを作るだけで、どんな画面サイズでもちゃんと読みやすく表示されるってこと!


レスポンシブデザインとは

レスポンシブデザイン(Responsive Web Design、略称RWD) とは、スマートフォン・タブレット・PCなど画面サイズが異なるさまざまなデバイスで、1つのWebページが最適なレイアウトで表示されるように設計する手法のことです。「レスポンシブ(responsive)」は「反応する・応答する」という意味で、画面サイズの変化に 柔軟に反応するデザイン というイメージです。

従来は「PC向けサイト」「スマホ向けサイト」を別々に作って、アクセス時にデバイスを判定してそれぞれに振り分けるという方法が主流でした。しかしこの方式ではコードの二重管理や更新漏れが発生しやすく、運用コストが増大する問題がありました。レスポンシブデザインでは 1つのHTMLとCSSで複数デバイスに対応 できるため、管理が大幅に楽になります。

今日ではGoogleがモバイルフレンドリーなサイトを検索順位の評価基準に含めていることもあり、レスポンシブデザインは サイト制作のデファクトスタンダード(事実上の標準) となっています。Webサイトを発注・選定する際には「レスポンシブ対応かどうか」は必ず確認すべき重要なポイントです。


レスポンシブデザインの3つの核心技術

レスポンシブデザインは、以下の3つの技術の組み合わせで実現されます。

技術役割具体例
フルードグリッド幅をピクセル固定でなく%で指定し、画面幅に追従させるwidth: 100% / width: 50%
フレキシブルイメージ画像もコンテナ幅に合わせて拡縮するmax-width: 100%
メディアクエリ画面幅などの条件でCSSを切り替える@media (max-width: 768px) { ... }

メディアクエリとブレークポイント

メディアクエリ(Media Query) は「画面幅が〇〇px以下のときはこのCSSを適用する」という条件分岐をCSSに書く仕組みです。この切り替えが起きる幅のことを ブレークポイント と呼びます。

/* スマホ向け(〜767px) */
@media (max-width: 767px) {
  .column { width: 100%; }   /* 1列に縦積み */
}

/* タブレット向け(768px〜1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  .column { width: 50%; }    /* 2列 */
}

/* PC向け(1024px〜) */
@media (min-width: 1024px) {
  .column { width: 33.33%; } /* 3列 */
}

よく使われるブレークポイントの目安

デバイス画面幅の目安代表的なブレークポイント
スマートフォン(縦)~480px480px
スマートフォン(横)/ 小型タブレット481px〜767px767px
タブレット768px〜1023px768px
PC・ラップトップ1024px〜1024px / 1280px

歴史と背景

  • 2000年代前半:WebはPCからのアクセスがほぼ100%。固定幅レイアウト(例: 幅960px固定)が主流
  • 2007年:初代iPhoneが登場。スマートフォンからのWeb閲覧が急増し始める
  • 2010年:デザイナーのイーサン・マルコッテ(Ethan Marcotte)が「Responsive Web Design」という概念を提唱。A List Apartの記事で発表
  • 2011年:マルコッテが書籍『Responsive Web Design』を出版。業界への普及が加速
  • 2012年〜:Bootstrap(Twitterが開発したCSSフレームワーク)がレスポンシブグリッドを標準搭載し、実装が大幅に簡単に
  • 2015年:GoogleがモバイルフレンドリーをSEO(検索エンジン最適化)の評価基準に追加(通称「モバイルゲドン」)
  • 2018年〜:Googleが モバイルファーストインデックス を本格導入。スマホ版の内容が検索評価の基準になる
  • 現在FlexboxCSS Gridなどの新しいCSS仕様の普及により、よりシンプルなコードでレスポンシブを実現できるようになっている

モバイルファーストとデスクトップファーストの違い

レスポンシブデザインを実装するアプローチには大きく2つあります。

レスポンシブデザインの2つのアプローチ デスクトップファースト まずPCのデザインを作る (幅広い画面から始める) max-width で絞り込む @media (max-width: 768px) スマホ向けに上書き調整 従来型。既存サイトの改修に多い モバイルファースト まずスマホのデザインを作る (最小画面から始める) min-width で広げる @media (min-width: 768px) PC向けに拡張レイアウトを追加 現在の主流。新規制作に推奨

モバイルファースト は「スマホで使えることを最優先にして、余裕があればPCのレイアウトを追加する」という考え方です。現在のWebトラフィックの過半数がスマホからであることを考えると、新規サイトの制作ではモバイルファーストが推奨されています。

レスポンシブデザイン vs 別URL方式の比較

比較項目レスポンシブデザイン別URL方式(m.example.com など)
管理するコード1つ2つ(PC用・SP用)
更新の手間少ない多い(両方を更新する必要あり)
SEへの影響Googleが推奨URLが分散し評価が分かれやすい
柔軟性デバイスを問わず対応可能デバイスの種類に限定
初期制作コスト設計が複雑になりやすいシンプルに作りやすい

関連する規格・RFC

規格内容
CSS Media Queries Level 4(W3C勧告)メディアクエリの最新仕様。画面幅・解像度・ダークモードなど多様な条件指定が可能
CSS Flexible Box Layout(W3C勧告)Flexboxの仕様。レスポンシブレイアウト実装の主力技術
CSS Grid Layout(W3C勧告)グリッドレイアウトの仕様。複雑な2次元レイアウトをシンプルに記述できる

関連用語

  • ビューポート — ブラウザの表示領域のこと。<meta name="viewport"> タグで制御する
  • メディアクエリ — CSSで画面幅などの条件によってスタイルを切り替える仕組み
  • CSS — Webページの見た目・レイアウトを定義するスタイルシート言語
  • モバイルファースト — スマホ向けデザインを優先して設計するアプローチ
  • ブレークポイント — レイアウトが切り替わる画面幅の境界値
  • Flexbox — CSSの柔軟なレイアウト手法。縦横整列を簡単に実現できる
  • SEO — 検索エンジン最適化。モバイルフレンドリーはGoogleの評価基準の一つ
  • フロントエンド — ユーザーのブラウザ上で動くWeb技術の総称