CSS辞書

@media

その他

画面サイズ、デバイスタイプ、印刷状況などの条件に基づいてスタイルを適用するルールです。レスポンシブデザインの基礎となる機能で、モバイル、タブレット、デスクトップなど様々なデバイスに対応できます。

構文

Syntax
@media <media-query> { ... }

Tailwindでは

バリアント sm: / md: / lg: / xl: を先頭に付けて使います

md:grid-cols-2@media (min-width: 48rem) { grid-template-columns: repeat(2, ...) }

モバイルファースト(min-width基準)。上限側は max-md:、任意幅は min-[420px]:。

コード例

1

@media (max-width: 768px) { .container { padding: 1rem; font-size: 14px; } }
実行結果
@media (max-width: 768px) → モバイル対応
デスクトップ表示(768px超)
Container
モバイル表示(768px以下)
Container - 小さいパディング・フォント
画面幅に応じてパディングとフォントサイズが変化

モバイル(768px以下)でのレイアウト調整

2

@media (min-width: 769px) and (max-width: 1024px) { .grid { grid-template-columns: repeat(2, 1fr); } }
実行結果
@media (min-width: 769px) and (max-width: 1024px) → タブレット対応
デスクトップ(1025px以上)
1
2
3
4
タブレット(769px〜1024px)
1
2
3
4
タブレットでは2列、デスクトップでは4列のグリッド

タブレット(769px〜1024px)で2列グリッド

3

@media (min-width: 1025px) { .sidebar { display: block; } .main { margin-left: 250px; } }
実行結果
@media (min-width: 1025px) → デスクトップ対応
モバイル・タブレット(1024px以下)
メインコンテンツ
サイドバー非表示
デスクトップ(1025px以上)
サイドバー
表示
メインコンテンツ
左マージン付き
デスクトップでサイドバーが表示され、メインコンテンツに左マージンが付く

デスクトップ(1025px以上)でサイドバー表示

4

@media (orientation: portrait) { .hero { height: 50vh; } } @media (orientation: landscape) { .hero { height: 100vh; } }
実行結果
@media (orientation: portrait/landscape) → デバイス向き対応
縦向き(Portrait)
Hero Section
height: 50vh
横向き(Landscape)
Hero Section
height: 100vh
デバイスの向きに応じてヒーローセクションの高さが変化

デバイスの向き(縦・横)に応じた高さ調整

5

@media print { .no-print { display: none; } body { font-size: 12pt; color: black; } }
実行結果
@media print → 印刷対応
画面表示
重要なコンテンツ
印刷不要な要素(広告など)
カラーテキスト
印刷時
重要なコンテンツ
[印刷不要な要素は非表示]
黒色テキスト (12pt)
印刷時は不要な要素を非表示にし、フォントサイズと色を調整

印刷時のスタイル調整

6

@media (prefers-color-scheme: dark) { body { background: #1a1a1a; color: #ffffff; } }
実行結果
@media (prefers-color-scheme: dark) → ダークモード対応
ライトモード
ページコンテンツ
background: white, color: black
ダークモード
ページコンテンツ
background: #1a1a1a, color: white
ユーザーのシステム設定に応じてダークモードを自動適用

ダークモード対応

💡 TIPS

モバイルファーストで設計し、小さい画面から大きい画面へとスタイルを追加していくのが一般的。breakpointは320px, 768px, 1024px, 1200pxなどがよく使われる。

⚠️ よくある間違い

max-widthとmin-widthの使い分けを間違えると意図しない結果になる。重複する条件で後から書いたルールが優先される。

🤖 AIがよく間違えるポイント

AIは古いmin-width/max-width記法だけで書きがちですが、現在は範囲構文(@media (768px <= width < 1024px))が全ブラウザで使え、境界の重複ミス(max-width: 767pxのような-1px調整)を根本から解消できます。また画面幅以外(hover: hover、prefers-*系)のクエリを組み合わせる発想もAIからは出にくいので明示すると良いです。

💬 AIへの頼み方

このmin-width/max-widthだらけのメディアクエリを新しい範囲構文に書き換えて、境界のバグがないか確認して

そのままAIチャットに貼り付けて使える依頼文の例です。ページ上部の「AI用にコピー」でこのページ全体をコンテキストとして渡せます。

関連プロパティ

ブラウザサポート

Baseline 広く利用可能
Chrome
1+
Firefox
1+
Safari
3+
Edge
12+