深掘り!メディアクエリを使いこなそう

もっと強力な「変身の呪文」をマスターしよう!

やあ、未来のWeb魔法使い! 前のページでは、メディアクエリが「もし画面がこの条件なら、この見た目にしてね!」と指示を出す「変身の呪文」だってことを学んだね。

基本の呪文 @media screen and (max-width: 600px) { ... } はもうバッチリかな? 今回は、このメディアクエリをもっともっと使いこなすために、呪文のバリエーションや、組み合わせのテクニックを詳しく見ていくよ。これで、君のWebサイトはさらに自由自在に変身できるようになるはずだ!

メディアクエリの構成要素(もう一度おさらい)

基本の形はこうだったね。

@media [メディアタイプ] and ([メディア特性]: [値]) {
  /* ここにCSSスタイルを書く */
}

この「メディアタイプ」と「メディア特性」には、実は色々な種類があるんだ。順番に見ていこう!

1.メディアタイプ (Media Types) – どんな「場所」で変身する?

メディアタイプは、「このスタイルをどんな種類のデバイス(場所)に適用しますか?」を指定するものだよ。

2.メディア特性 (Media Features) – どんな「条件」で変身する?

メディア特性は、「どんな条件のときにスタイルを変えますか?」という具体的な条件を指定するところだよ。前のページでは幅の特性 max-width を使ったね。他にもたくさんあるんだ!

幅 (width) の仲間たち

画面の幅に関する条件は、レスポンシブデザインで一番よく使うよ!

特性 意味 書き方の例 「こんなとき!」というイメージ
width ビューポートの幅がピッタリこの値のとき (width: 768px) 「画面幅がちょうど768pxのときだけ!」 (あまり使わない)
min-width ビューポートの幅がこの値以上のとき (その値を含む) (min-width: 768px) 「画面幅が768px以上のとき、つまりタブレットやPCサイズのとき!」 (モバイルファーストでよく使う)
max-width ビューポートの幅がこの値以下のとき (その値を含む) (max-width: 767px) 「画面幅が767px以下のとき、つまりスマホサイズのとき!」 (デスクトップファーストでよく使う)

ブレークポイント (Breakpoints): この min-widthmax-width で指定する幅の値を「ブレークポイント」って呼ぶよ。Webサイトのデザインが「パキッ」と変わる(breakする)点(point)だからだね。 どの値をブレークポイントにするかは、Webサイトのデザインや内容によって変わってくるけど、よく使われるのは、代表的なスマホ、タブレット、PCの画面幅を参考にすることが多いよ。(例:320px, 480px, 600px, 768px, 992px, 1200pxなど) でも、一番大切なのは「デバイスのサイズ」に合わせるんじゃなくて、「コンテンツ(中身)がキレイに見えるかどうか」で決めることなんだ。

高さ (height) の仲間たち

幅と同じように、ビューポートの高さで条件を指定することもできるよ。

幅ほど頻繁には使われないけど、例えば「画面の高さがすごく低いときだけ、ヘッダーを小さくする」みたいな使い方ができるね。

向き (orientation) – 画面は縦?横?

スマートフォンやタブレットは、縦向き (portrait) にも横向き (landscape) にもできるよね。この向きによってスタイルを変えることができるんだ。

この箱の色は、画面の向きで変わるよ!

(スマートフォンやタブレットで見て、端末を回転させてみてね!PCのブラウザ開発ツールでもシミュレートできるよ。)

/* 縦向きのときのスタイル */
@media screen and (orientation: portrait) {
  .my-element { background-color: lightblue; }
}
/* 横向きのときのスタイル */
@media screen and (orientation: landscape) {
  .my-element { background-color: lightgreen; }
}

解像度 (resolution) – 画面のキレイさで変身!

最近は、同じ画面サイズでも、すごく高精細(こうせいさい:きめ細かい)なディスプレイ(Retinaディスプレイとか4Kディスプレイとか)が増えてきたよね。 resolution という特性を使うと、そんな画面の解像度に応じてスタイルを変えることができるんだ。

dpi (dots per inch) や dppx (dots per pixel) という単位で指定するよ。例えば、高解像度ディスプレイのときだけ、もっとキレイな画像を表示する、みたいなことができるんだ。(これはちょっと高度なテクニックなので、今は名前だけ覚えておこう!)

アスペクト比 (aspect-ratio) - 画面の縦横比

ビューポートの幅と高さの比率(例: 16:9のワイド画面など)に応じてスタイルを変えることもできるよ。

映画の字幕みたいな特別なレイアウトで役立つことがあるかもしれないね。

3.論理演算子 (Logical Operators) – 条件を組み合わせよう!

メディアクエリでは、いくつかの条件を組み合わせて、もっと複雑な「変身の呪文」を作ることができるんだ。そのために使うのが「論理演算子」だよ。

実践的な使い方・コツ

モバイルファースト? デスクトップファースト?

レスポンシブデザインのスタイルを書くとき、大きく分けて2つのアプローチがあるんだ。

どちらの方法でもレスポンシブデザインは作れるけど、ウルトラ先生はモバイルファーストをおすすめするよ!

コメントを活用しよう!

メディアクエリがたくさん出てくると、CSSファイルが複雑になってくることがある。そんなときは、コメントを使って、どのメディアクエリがどんな範囲のスタイルなのかを分かりやすく書いておくと、後で見返したときや他の人が見たときにとても助かるよ。

/* ===================================
   Base Mobile Styles (モバイル基本スタイル)
   =================================== */
body { /* ... */ }

/* ===================================
   Tablet Styles (タブレット用: 768px以上)
   @media (min-width: 768px)
   =================================== */
@media screen and (min-width: 768px) {
  body { /* ... */ }
}

/* ===================================
   Desktop Styles (デスクトップ用: 992px以上)
   @media (min-width: 992px)
   =================================== */
@media screen and (min-width: 992px) {
  body { /* ... */ }
}

まとめ:メディアクエリは可能性がいっぱい!

メディアクエリの奥深さ、少し感じられたかな? たくさんのメディア特性や論理演算子を組み合わせることで、本当に色々な条件でWebサイトの見た目をコントロールできるようになるんだ。

最初は全部覚えなくても大丈夫!よく使う min-widthmax-widthorientation あたりから慣れていって、必要になったときに他の特性も調べて使ってみる、というスタンスでOKだよ。

これで、君の「変身の呪文」のレパートリーはかなり増えたはず! 次のページでは、これらのメディアクエリを実際に使って、画面サイズに合わせて要素の配置(レイアウト)を柔軟に変えるテクニックについて学んでいくよ。いよいよ本格的なレスポンシブレイアウトの世界だ!