本文へ移動

トップお知らせ・ブログCSSのメディアクエリとは

CSSのメディアクエリとは?画面サイズごとの調整方法

スマートフォンでは1列、パソコンでは3列。
このように、画面の大きさに合わせてデザインを切り替えるときに使うのが、CSSの「メディアクエリ」です。

この記事では、メディアクエリの書き方と、切り替える幅の決め方を解説します。

1.条件でCSSを切り替える

メディアクエリとは、「画面の幅が○px以下のとき」のような条件を付けて、その条件に合うときだけCSSを効かせる書き方です。

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

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

この例では、ふだんは3列、画面の幅が600px以下のときは1列で表示します。

書き方意味
@media (max-width: 600px)画面の幅が600px以下のとき
@media (min-width: 900px)画面の幅が900px以上のとき
@media (prefers-reduced-motion: reduce)動きを減らす設定にしているとき

2.メディアクエリが必要な理由

同じデザインのままでは、パソコンで見やすいページが、スマートフォンでは文字が小さすぎたり、横にはみ出したりします。メディアクエリを使うと、1つのページのまま、画面の大きさに合わせて見え方を変えられます。

これが、レスポンシブデザインの中心となる仕組みです。レスポンシブデザインについては、レスポンシブデザインとは?で解説しています。

メディアクエリは、画面の大きさに合わせて、見え方を切り替えるための書き方です。

3.切り替える幅の決め方と、書き方のコツ

切り替える幅(ブレイクポイント)の決め方

決まった正解はありません。よく使われるのは、スマートフォン、タブレット、パソコンの境目です。端末の大きさに合わせるより、「デザインが崩れ始める幅」で切り替える考え方が分かりやすいです。

目安の幅主な端末
〜600px くらいスマートフォン
600〜1024px くらいタブレット、小さめのパソコン
1024px くらい〜パソコン

スマートフォンから書く(モバイルファースト)

スマートフォン向けのCSSを先に書き、画面が広くなったら min-width で足していく書き方を、モバイルファーストと呼びます。スマートフォンで見る人が多いホームページでは、この順番で考えると、スマートフォンの見え方を優先しやすくなります。

.cards {
  display: grid;
  gap: 16px;
}

@media (min-width: 900px) {
  .cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

よくある間違い

  • viewport の指定(meta タグ)がなく、スマートフォンで効かない
  • max-width と min-width を混ぜて、条件が重なっている
  • メディアクエリをCSSの前の方に書いて、あとの指定に上書きされている

4.よくある質問

切り替える幅は、いくつ作ればよいですか?

2〜3か所くらいが一般的です。多すぎると、管理が大変になります。

max-width と min-width は、どちらを使えばよいですか?

パソコンから書くなら max-width、スマートフォンから書くなら min-width を使います。ホームページの中では、どちらかにそろえると分かりやすくなります。

メディアクエリが効きません。

viewport の指定があるか、書く順番であとの指定に上書きされていないかを確かめましょう。

画面の向き(縦・横)でも切り替えられますか?

orientation という条件で切り替えられます。

5.まとめ

メディアクエリは、画面の幅などの条件によって、CSSを切り替える書き方です。

  • @media (max-width: …) や (min-width: …) で条件を書く
  • デザインが崩れ始める幅で切り替える
  • スマートフォンから書くモバイルファーストも考える
  • viewport の指定と、書く順番を確かめる

CSSの単位については、CSSのvw・vh・rem・emの違いとは?で解説しています。

スマートフォンでの表示の崩れで困っている場合は、浅草Web屋にご相談ください。

相談する

関連記事