べんりワザ・チートシート・早見表

ブレークポイントの決め方早見表

「ブレークポイントは何pxにすればいい?」の答えは、まず768pxと1024pxの2つ。よく使われる値の一覧、モバイルファーストの書き方、増やしすぎないコツ、効かないときの確認どころをまとめました。

「ブレークポイントは何pxにすればいい?」——結論から言うと、まずは768pxと1024pxの2つで足ります。数を増やすほど確認する組み合わせが増えるだけで、見た目が良くなるわけではありません。この記事では、よく使われる値の一覧と、増やしすぎないための考え方をまとめます。

CSSスマホでも見やすく:メディアクエリメディアクエリの書き方そのものを学ぶなら、先にCSSコースのこの回へ

結論:この2つから始める

/* スマホ向けの見た目は、ここ(素のCSS)に書く */
.cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* 768px以上:タブレット・小さいPC */
@media (min-width: 768px) {
  .cards {
    grid-template-columns: 1fr 1fr;
  }
}

/* 1024px以上:PC */
@media (min-width: 1024px) {
  .cards {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

素のCSSがスマホ向け、メディアクエリで広い画面を上書きしていく形です。これをモバイルファーストと呼びます。

よく使われるブレークポイント一覧

数字に絶対の正解はありませんが、実務でよく見る値はだいたい決まっています。

想定している幅よく呼ばれる名前
480px大きめのスマホ(横向きなど)スマホ
768pxタブレット縦・小さいノートPCタブレット
1024pxノートPC・タブレット横PC
1280pxデスクトップ大画面
1536px高解像度の大型ディスプレイ特大

太字の2つが、いちばん出番の多い分かれ目です。有名なCSSフレームワークもおおむねこの近辺の値を採用しています。

主なデバイスの表示幅

デモや確認のときの目安として、代表的な幅を挙げておきます(CSSが見る幅の目安で、実際の解像度とは別の数字です)。

種類よくある幅
小さめのスマホ360〜390px
大きめのスマホ390〜430px
タブレット(縦)768〜834px
タブレット(横)・小型ノート1024〜1180px
ノートPC1280〜1512px
外付けディスプレイ1920px以上

確認は375px・768px・1280pxの3点を見れば、実用上ほとんどカバーできます。

min-widthで書く理由

max-width(狭いほうを条件にする)でも同じ見た目は作れますが、min-widthのほうが管理が楽です。

min-width(モバイルファースト)max-width(PCファースト)
素のCSSに書くものスマホの見た目PCの見た目
上書きの方向狭い→広い広い→狭い
指定の重なり少ない増えやすい
スマホでの読みこみ余分な指定を読まないPC向けの指定も読む

いちばん実利があるのは指定が重なりにくいことです。スマホは表示できる要素が少ないので指定もシンプルになり、広い画面で足りない分だけを追加していく形になります。

書く場所は「まとめて最後」か「その場」か

メディアクエリの置き場所には2つの流派があります。

/* 流派1:CSSファイルの最後にまとめる */
.card { ... }
.header { ... }

@media (min-width: 768px) {
  .card { ... }
  .header { ... }
}
/* 流派2:部品ごとにその場で書く */
.card {
  padding: 12px;
}
@media (min-width: 768px) {
  .card {
    padding: 24px;
  }
}

.header { ... }

初心者におすすめは流派2です。1つの部品の指定が1か所に集まるので、「このカードの余白はどこで決まっている?」を探し回らずに済みます。ファイルの最後に全部集めると、部品が増えたときに対応関係を追えなくなります。

viewportのmetaタグがないと全部むだになる

これがいちばん多いつまずきです。<head>に次の1行がないと、スマホは「幅980px相当のPC画面」としてページを描き、それを縮小して表示します。つまりメディアクエリの条件に届かず、スマホでもPC向けの見た目のままになります。

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

「PCの開発者ツールでは切りかわるのに、実機のスマホで変わらない」——そのときは真っ先にここを見てください。

HTMLheadの中身をそろえようheadとmetaタグの役割そのものは、HTMLコースのこの回へ

ブレークポイントを使わずに済む書き方

段階を作らずにレスポンシブにできる場面は、思ったより多くあります。メディアクエリを書かなくて済むなら、それがいちばん管理が楽です。

カードの列数を自動で変える

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

「1枚は最低240px、入るだけ並べる」という指定なので、列数はブラウザが決めてくれます。

べんりワザCSS Gridチートシートこの書き方のくわしい読み方は、CSS Gridの早見表へ

文字サイズを滑らかに変える

h1 {
  font-size: clamp(1.5rem, 5vw, 3rem);
}

clamp()は「最小・ちょうどよく変わる値・最大」の3つを書く関数です。この例では「最小24px相当、画面幅の5%、最大48px相当」となり、段階ではなく連続して変わります。見出しの大きさは、これで済むことがほとんどです。

横並びを自動で折り返す

.row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.row > * {
  flex: 1 1 240px;    /* 240pxを下回ると折り返す */
}

幅の上限だけ決める

.container {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 16px;
}

widthではなくmax-widthで上限だけ決めておくと、狭い画面では自動で縮みます。多くのサイトはこれだけで大部分がレスポンシブになります。

崩れる幅の見つけかた

ブレークポイントは「机の上で決める」より「崩れた幅で決める」ほうが確実です。

  1. 開発者ツールを開き、デバイスツールバー(⌘ + ⇧ + M / Ctrl + Shift + M)をオンにする
  2. 幅をゆっくりドラッグして狭めていく
  3. 文字がはみ出す・要素が重なる・横スクロールが出た幅を覚える
  4. その少し手前の幅をブレークポイントにする

この手順で足したブレークポイントは、必ず意味があります。逆に「768pxが定番だから」だけで足した指定は、あとから読み返しても理由が分からなくなります。

べんりワザ開発者ツールの使い方入門デバイスツールバーの使い方は、開発者ツール入門の記事へ

効かないときのチェックリスト

  • スマホの実機で変わらないviewportのmetaタグを確認(最有力)
  • 書いたのに何も起きない@mediaのあとに半角スペース、(min-width: 768px)の括弧とコロンを確認
  • PC向けの指定が消えないmin-widthmax-widthが混ざっていませんか?
  • 条件は合っているのに上書きされない → 素のCSSのほうが詳しいセレクタ.card p spanなど)になっていると、メディアクエリ側が負けます。セレクタの強さをそろえます
  • 横スクロールが出る → はみ出している要素をoverflowで隠す前に、原因の要素を探します。width: 100vwや固定pxの幅が犯人になりがちです
  • 画像が枠を超える → 画像にmax-width: 100%を付けます。レスポンシブの土台になる指定です

まとめ

  1. 最初は768pxと1024pxの2つで足りる。増やすのは崩れた幅を見つけたときだけ
  2. min-widthのモバイルファーストで書く。max-widthと混ぜない
  3. viewportのmetaタグがないと、メディアクエリはスマホで効かない
  4. repeat(auto-fit, minmax())clamp()max-widthで、段階を作らずに済む場面は多い
  5. ブレークポイントは机の上で決めず、幅をドラッグして崩れた場所で決める
べんりワザコピペで使えるCSSレイアウト集レイアウトそのものの型は、コピペで使えるレイアウト集へ

ブレークポイントは少ないほど良いものです。まず2つで組んでみて、困ったところだけ足していってください。

よくある質問

ブレークポイントは何pxにすればいいですか?
最初は768px(タブレット以上)と1024px(PC以上)の2つで足ります。細かく刻むほど確認する組み合わせが増えて管理が大変になるので、レイアウトが崩れる幅を見つけたときだけ追加するのが現実的です。
min-widthとmax-width、どちらで書くべきですか?
min-widthをおすすめします。スマホ向けの見た目を素のCSSで書き、画面が広いときだけ上書きしていく書き方(モバイルファースト)になり、指定が重なりにくく読みやすくなります。1つのサイトの中で両方を混ぜないことが大事です。
メディアクエリを書いたのにスマホで反映されません
headにviewportのmetaタグがない可能性が高いです。これがないとスマホは幅980px相当でページを描いて縮小表示するため、メディアクエリの条件に届きません。まずこの1行を確認してください。
ブレークポイントを使わずにレスポンシブにできますか?
できる場面はかなりあります。カード一覧は grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); で自動的に列数が変わり、文字サイズは clamp() で幅に応じて滑らかに変わります。段階を作らずに済むならそのほうが管理は楽です。