CSS3 マルチメディア クエリ

 

レスポンシブWebデザインの強力なツール:CSS3メディアクエリ完全ガイド

あらゆる画面サイズに対応したWebサイトを作りたいと思いませんか?この記事では、CSS3メディアクエリについて、構文、適用シーン、よくあるサンプル、ベストプラクティスなどを分かりやすく解説し、レスポンシブWebデザインの実現を支援します。

1. CSS3 メディアクエリとは?

メディアクエリとは、異なるデバイスの特性に応じて異なるスタイルを適用するための仕組みです。例えば、スマートフォンの小さな画面では文字を大きく表示したり、デスクトップの大きな画面では複数カラムのレイアウトにしたりすることができます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>レスポンシブデザインの例</title>
  <style>
    body {
      font-size: 24px;
    }

    @media (max-width: 768px) {
      body {
        font-size: 18px;
      }
    }
  </style>
</head>
<body>
  <h1>レスポンシブデザインの例</h1>
  <p>このページは、画面サイズに合わせてフォントサイズが変わります。</p>
</body>
</html>

上記の例では、画面の横幅が768px以下の場合に、本文のフォントサイズを18pxに設定しています。

2. メディアクエリ構文詳解

メディアクエリは、メディアタイプとメディア特性、そして論理演算子で構成されます。

2.1 メディアタイプ

メディアタイプは、適用対象となるデバイスの種類を指定します。主なメディアタイプは以下の通りです。

メディアタイプ 説明
all すべてのデバイス
screen コンピュータ、タブレット、スマートフォンなどの画面を持つデバイス
print 印刷時の表示

2.2 メディア特性

メディア特性は、デバイスの具体的な特性を指定します。主なメディア特性は以下の通りです。

メディア特性 説明
width 画面の横幅
height 画面の高さ
orientation 画面の向き(portrait: 縦向き、landscape: 横向き)

2.3 論理演算子

論理演算子を使用して、複数の条件を組み合わせることができます。主な論理演算子は以下の通りです。

論理演算子 説明
and 両方の条件を満たす場合にスタイルを適用
not 指定した条件を満たさない場合にスタイルを適用
only 指定したメディアタイプのみを対象とする

/* 画面の横幅が768px以上で、縦向きの場合 */
@media (min-width: 768px) and (orientation: portrait) {
  /* スタイル */
}

3. メディアクエリのよくある適用シーン

3.1 画面サイズに応じたレイアウト調整


/* 2カラムレイアウト */
@media (min-width: 768px) {
  .container {
    display: flex;
  }

  .sidebar {
    width: 30%;
  }

  .content {
    width: 70%;
  }
}

/* レスポンシブイメージ */
img {
  max-width: 100%;
  height: auto;
}

3.2 デバイスの向きに応じたスタイル調整


/* 横向き */
@media (orientation: landscape) {
  .header {
    flex-direction: row;
  }
}

/* 縦向き */
@media (orientation: portrait) {
  .header {
    flex-direction: column;
  }
}

3.3 印刷デバイスへの対応


@media print {
  /* ナビゲーションを非表示 */
  .nav {
    display: none;
  }

  /* フォントサイズ調整 */
  body {
    font-size: 12pt;
  }
}

4. メディアクエリ ベストプラクティス

  • モバイルファーストの戦略でCSSコーディングを行う
  • 固定ピクセル値ではなく、相対単位(%、emなど)を使用する
  • メディアクエリのブレークポイントをむやみに増やしすぎない
  • ブラウザの開発者ツールを使用して、様々なデバイスでの表示を確認する

5. まとめ

メディアクエリは、レスポンシブWebデザインにおいて重要な役割を果たします。この記事で紹介した内容を参考に、ぜひメディアクエリを活用してみてください。

参考資料

Q&A

Q1: メディアクエリはどのように動作しますか?

A1: メディアクエリは、デバイスの画面サイズ、解像度、向きなどの特性を検出し、条件に一致する場合にのみスタイルを適用します。

Q2: メディアクエリを使用するメリットは何ですか?

A2: メディアクエリを使用すると、様々なデバイスに最適化されたWebサイトを作成することができます。これにより、ユーザーエクスペリエンスが向上し、アクセス数の増加やコンバージョン率の向上につながります。

Q3: メディアクエリは古いブラウザでも動作しますか?

A3: CSS3メディアクエリは、ほとんどのモダンブラウザでサポートされています。ただし、古いブラウザの中にはサポートしていないものもあるため、注意が必要です。古いブラウザへの対応が必要な場合は、Modernizrなどのライブラリを使用する必要があります。