CSSメディアクエリ
CSS2で導入されたメディアタイプ
CSS2で導入された@media
ルールにより、さまざまなメディアタイプに対してさまざまなスタイルルールを定義できるようになりました。
例:コンピュータ画面用、プリンタ用、ハンドヘルドデバイス用、テレビタイプのデバイス用など、一連のスタイルルールを設定できます。
残念ながら、これらのメディアタイプは、印刷メディアタイプを除いて、多くのデバイスでサポートされることはありませんでした。
CSS3で導入されたメディアクエリ
CSS3のメディアクエリは、CSS2メディアタイプの考え方を拡張したものです。
デバイスのタイプを探す代わりに、デバイスの機能を調べます。
メディアクエリは、次のような多くのことを確認するために使用できます。
- ビューポートの幅と高さ
- デバイスの幅と高さ
- 向き(タブレット/電話は横向きですか、それとも縦向きですか?)
- 解決
メディアクエリの使用は、カスタマイズされたスタイルシートをデスクトップ、ラップトップ、タブレット、および携帯電話(iPhoneやAndroidフォンなど)に配信するための一般的な手法です。
ブラウザのサポート
表の数字は、@media
ルールwを完全にサポートされている最初のブラウザバージョンを示しています。
プロパティ |
|||||
---|---|---|---|---|---|
@media | 21.0 | 9.0 | 3.5 | 4.0 | 9.0 |
メディアクエリの構文
メディアクエリはメディアタイプで構成され、trueまたはfalseに解決される1つ以上の式を含めることができます。
指定されたメディアタイプが、ドキュメントが表示されているデバイスのタイプと一致し、メディアクエリ内のすべての式がtrueの場合、クエリの結果はtrueです。メディアクエリがtrueの場合、通常のカスケードルールに従って、対応するスタイルシートまたはスタイルルールが適用されます。
notまたはonly演算子を使用しない限り、メディアタイプはオプションであり、all
タイプが暗黙的に指定されます。
メディアごとに異なるスタイルシートを使用することもできます。
CSS3メディアタイプ
value |
説明 |
---|---|
all | すべてのメディアタイプデバイスに使用 |
プリンターに使用 | |
screen | パソコンの画面、タブレット、スマートフォンなどに使用されます。 |
speech | ページを声に出して「読み上げる」スクリーンリーダーに使用 |
メディアクエリの簡単な例
メディアクエリを使用する1つの方法は、スタイルシート内に代替CSSセクションを配置することです。
次の例では、ビューポートの幅が480ピクセル以上の場合、背景色を薄緑に変更します(ビューポートが480ピクセル未満の場合、背景色はピンクになります)。
次の例は、ビューポートの幅が480ピクセル以上の場合にページの左側にフローティングするメニューを示しています(ビューポートが480ピクセル未満の場合、メニューはコンテンツの上に表示されます)。
例
その他のメディアクエリの例
メディアクエリのその他の例については、次のページを参照してください。CSS MQ の例.
CSS @mediaリファレンス
すべてのメディアタイプと機能/表現の完全な概要については、CSSリファレンスの@mediaルールを参照してください。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。