HTML/CSS入門⑭ スマホ対応!レスポンシブデザインの基礎

HTML/CSS入門 HTML/CSS入門

現代のWebサイトでは、
スマホでもPCでもきれいに見える「レスポンシブデザイン」 が必須です。

Google検索の評価(SEO)にも影響するので、
Web制作において最重要スキルの一つです。

この記事では、レスポンシブの基本である
メディアクエリ(@media) を使って、
スマホ・タブレット・PCでレイアウトを切り替える方法を
わかりやすく解説します。

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

画面サイズによってレイアウトを自動で変えるデザイン手法。

例:

  • PC → 横3列
  • タブレット → 横2列
  • スマホ → 1列に変更

ページの要素を自在に切り替えます。

必須:viewport の設定

HTML <head> に入れるお決まりの1行です。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

これが無いとスマホ表示が正しく行われません。

レスポンシブの基本:メディアクエリ(@media)

画面幅によって CSS を分岐させる書き方です。

@media (max-width: 600px) {
  /* 600px以下のスマホ画面にだけ適用 */
}

スマホで文字サイズを調整する例

h1 {
  font-size: 32px;
}

/* スマホ */
@media (max-width: 600px) {
  h1 {
    font-size: 24px;
  }
}

→ スマホだと見出しが大きすぎないように調整

横並びを縦並びに変更する(Flexbox)

PCでは横並び、スマホでは縦並び。

.boxes {
  display: flex;
  gap: 20px;
}

/* スマホ */
@media (max-width: 600px) {
  .boxes {
    flex-direction: column;
  }
}

→ よく使うレイアウトパターン

カードを1列にする(Grid)

PC → 3列
スマホ → 1列

.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* スマホ */
@media (max-width: 600px) {
  .cards {
    grid-template-columns: 1fr;
  }
}

→ 商品一覧・ブログカードで必ず使う

画像サイズを調整する

img {
  width: 100%;
  height: auto;
}

→ “はみ出し防止” の鉄板スタイル

スマホだけメニューを折りたたむ(簡易版)

.nav {
  display: flex;
  gap: 20px;
}

/* スマホ */
@media (max-width: 600px) {
  .nav {
    flex-direction: column;
    align-items: center;
  }
}

レスポンシブのよくあるブレークポイント

デバイス幅(px)
スマホ0〜600px
タブレット600〜1024px
PC1024px〜

以下のように書くことが多い:

/* スマホ */
@media (max-width: 600px) {}

/* タブレット */
@media (max-width: 1024px) {}

レスポンシブ対応のコツ(初心者向け)

まずPCデザインを作って、スマホで上書きする

「モバイルファースト」もあるが、初心者はPC → スマホの方が楽。

大きい順 → 小さい順 にコードを書くと読みやすい

細かい部分から調整するのではなく、まずは大枠からきちんと作成していく!
例えば、まずは「header、main、footer」→「div、p、sectionなど」→「input、button、aなど」

このように親要素から整えていくといいかもしれません。

余白(padding)の調整を忘れない

スマホは縦長なので余白が大きすぎると読みにくい

横スクロールが発生したら画像・幅指定を疑う

→ width:100% が効いているか確認

総合例:PCは3列、スマホは1列

HTML:

<div class="cards">
  <div class="card">A</div>
  <div class="card">B</div>
  <div class="card">C</div>
</div>

CSS:

.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* スマホ */
@media (max-width: 600px) {
  .cards {
    grid-template-columns: 1fr;
  }
}

→ この書き方はよく使います!

レスポンシブを実感しよう(デモ用CSSまとめ)

/* 基本 */
.box {
  background: #eee;
  padding: 20px;
}

/* PC */
.wrapper {
  display: flex;
  gap: 20px;
}

/* スマホ */
@media (max-width: 600px) {
  .wrapper {
    flex-direction: column;
  }
}

→ 自分で試しながら覚えるのが一番早い!

この記事のまとめ

  • レスポンシブデザインは現代のWeb制作で必須
  • メディアクエリ(@media)で画面幅ごとにCSSを切り替える
  • PC → スマホへ「縦並び化」「1列化」が基本
  • 画像は width:100% で“はみ出し事故”を防ぐ
  • Grid や Flexbox と組み合わせると強力

ではでは!次回!:HTML/CSS入門⑮ トップページの総仕上げ

コメント

タイトルとURLをコピーしました