このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

メディア・タイプとメディア・クエリ

記事May 5th,2015
Dec. 26th,2021
リソースの対象とするデバイスを指定する“media”属性の値として指定するメディア・タイプ、メディア・クエリについて
この記事はHTML Living Standardに対応しています。
この記事はHTML Living Standardに対応しています。

media”属性

サンプルコード

外部スタイルシートの対象デバイスを指定
<link rel="stylesheet" type="text/css" href="style.css" media="screen and ( min-width: 640px )">

スタイルシートの対象デバイスを指定
<style media="all and ( max-width: 640px )">

メタデータの対象デバイスを指定
<meta name="theme-color" content="#a2d7dd" media="(prefers-color-scheme: light)">

メディアリソースの対象デバイスを指定
<source media="(max-width: 320px)" srcset="sample-320-sp.png">

media”属性はリソースなどが対象とするデバイスを指定します。

属性値はメディア・クエリを利用します。

使用できる要素

media”属性

要素 説明
<link> 外部リソースの対象デバイスを指定
<style> スタイルシートの対象デバイスを指定
<meta> メタデータの対象デバイスを指定
<source> リソースの対象デバイスを指定

メディア・タイプとメディア・クエリ

メディア・クエリとは?

media”属性の値はCSSで定義されているメディア・クエリ(Media Queries)”を使用して指定します。

メディア・クエリはHTML4でlink”要素media”属性の値として定義されていた“メディア・タイプ”を発展させたものです。メディア・タイプでは対象とするデバイスを大まかなカテゴリで指定することができましたが、これを発展させたメディア・クエリではより細かく対象とするデバイスを指定することができるようになりました。

メディア・クエリは大まかなデバイスの種類であるメディア・タイプと細かいデバイスの特性を表現したメディア・フィーチャーを組み合わせたものです。

メディア・タイプの一覧

メディア・タイプ 説明
all すべてのデバイス
print プリンタ・デバイス
screen プリンタ・デバイス以外

メディア・フィーチャーの一覧

フィーチャー名 フィーチャー値
名前 説明 説明
(min-/max-)
width
出力デバイスの描画域(ビューポート)の横幅 <length> 出力デバイスの描画域(ビューポート)の横幅
(min-/max-)
height
出力デバイスの描画域(ビューポート)の高さ <length> 出力デバイスの描画域(ビューポート)の高さ
(min-/max-)
aspect-ratio
出力デバイスの描画域(ビューポート)のアスペクト比 <ratio> 出力デバイスの描画域(ビューポート)のアスペクト比
orientation 出力デバイスの描画域(ビューポート)の向き portrait 出力デバイスの描画域(ビューポート)の高さが横幅よりも大きいか等しい
landscape 出力デバイスの描画域(ビューポート)の横幅が高さよりも大きい
overflow-blockMedia Queries Level 4 で追加 出力デバイスがブロック軸方向に溢れたコンテンツをどのように扱うか none ブロック軸方向に溢れたコンテンツは表示されない
scroll ブロック軸方向に溢れたコンテンツはスクロールすることで表示される
optional-paged ブロック軸方向に溢れたコンテンツはスクロールすることで表示されるが、ページ区切りを入れることで次のページに表示させることができる
paged ブロック軸方向に溢れたコンテンツは不連続のページに分割され、溢れた分は次のページに表示される
overflow-inlineMedia Queries Level 4 で追加 出力デバイスがインライン軸方向に溢れたコンテンツをどのように扱うか none インライン軸方向に溢れたコンテンツは表示されない
scroll インライン軸方向に溢れたコンテンツはスクロールすることで表示される
(min-/max-)
horizontal-viewport-segmentsMedia Queries Level 5 で追加
ビューポートの水平方向の論理的な区分の数 <integer> ビューポートの水平方向の論理的な区分の数
(min-/max-)
vertical-viewport-segmentsMedia Queries Level 5 で追加
ビューポートの垂直方向の論理的な区分の数 <integer> ビューポートの垂直方向の論理的な区分の数
display-modeMedia Queries Level 5 で追加 ウェブ・アプリケーションの表示モード fullscreen ウェブ・アプリケーションは利用可能な表示領域のすべてを使用し、ブラウザのユーザ・インターフェースは表示されない
standalone ウェブ・アプリケーションをスタンドアロン・アプリケーションのように表示し、ステータス・バーのようなシステムのインターフェースのみ表示する
minimal-ui ウェブ・アプリケーションをスタンドアロン・アプリケーションのように表示するが、ナビゲーションのための最小限のナビゲーションのためのユーザ・インターフェースも表示する
browser ウェブ・アプリケーションをデバイスが通常のハイパーリンクを開くために使用する方法で表示する
(min-/max-)
resolution
出力デバイスの解像度 <resolution> 出力デバイスの解像度
scan 出力デバイスの走査方式 interlace 出力デバイスはインターレース方式
progressive 出力デバイスはプログレッシブ方式
grid 出力デバイスがグリッド・デバイスかどうか 1 出力デバイスはグリッド・ベース
0 出力デバイスはグリッド・ベースでない
updateMedia Queries Level 4 で追加 出力デバイスがどれだけの頻度でコンテンツの表示を更新できるか none 一度表示されるとコンテンツは更新されない
slow コンテンツは更新できるが変更をすばやく表示することができない
fast コンテンツは更新でき、速度の制約なく変更を表示できる
environment-blendingMedia Queries Level 5 で追加 出力デバイスが現実の景色に重ねて描画するかどうか opaque 不透明な媒体に表示される
additive 色は現実の景色に加色混合されて表示される
subtractive 色は現実の景色に減色混合されて表示される
(min-/max-)
color
出力デバイスの色成分ごとのビット数 <integer> 出力デバイスの色成分ごとのビット数
0 出力デバイスはカラーデバイスではない
(min-/max-)
color-index
出力デバイスのカラーテーブルのエントリ数 <integer> 出力デバイスのカラーテーブルのエントリ数
0 出力デバイスはカラーテーブルを使用しない
(min-/max-)
monochrome
出力デバイスのモノクロ・フレームバッファのビット数 <integer> 出力デバイスのモノクロ・フレームバッファのビット数
0 出力デバイスはモノクロームデバイスではない
color-gamutMedia Queries Level 4 で追加 出力デバイスが対応する色の範囲 srgb sRGBの色域、もしくはそれより広い範囲
p3 DCI-P3の色域、もしくはそれより広い範囲
rec2020 Rec.2020の色域、もしくはそれより広い範囲
dynamic-rangeMedia Queries Level 5 で追加 出力デバイスのダイナミック・レンジ high ピーク輝度が高く、コントラスト比が高く、色深度が24ビットもしくは8ビットより大きい
standard high”の条件のいずれかを満たさない
inverted-colorsMedia Queries Level 5 で追加 コンテンツが色を反転させて表示されるかどうか none 色を通常通り表示する
inverted 色が反転されて表示される
pointerMedia Queries Level 4 で追加 出力デバイスのメインの入力メカニズムがポインティング・デバイスかどうか none 出力デバイスのメインの入力メカニズムはポインティング・デバイスではない
coarse 出力デバイスのメインの入力メカニズムは正確性に制約があるポインティング・デバイス
fine 出力デバイスのメインの入力メカニズムは正確性が高いポインティング・デバイス
hoverMedia Queries Level 4 で追加 出力デバイスのメインの入力メカニズムが要素にホバーできるかどうか none 出力デバイスのメインの入力メカニズムはホバーができない
hover 出力デバイスのメインの入力メカニズムはホバーができる
any-pointerMedia Queries Level 4 で追加 出力デバイスにポインティング・デバイスがあるどうか none 出力デバイスにはポインティング・デバイスはない
coarse 出力デバイスには正確性に制約があるポインティング・デバイスがある
fine 出力デバイスには正確性が高いポインティング・デバイスがある
any-hoverMedia Queries Level 4 で追加 出力デバイスにホバーができる入力メカニズムがあるどうか none 出力デバイスはホバーができる入力メカニズムはない
hover 出力デバイスはホバーができる入力メカニズムがある
nav-controlsMedia Queries Level 5 で追加 ユーザー・エージェントがインターフェースとして明確なナビゲーションのためのコントロールを提供しているかどうか none ユーザー・エージェントがインターフェースとして明確なナビゲーションのためのコントロールを提供しない
back ユーザー・エージェントがインターフェースとして明確なナビゲーションのためのコントロールを提供する
video-color-gamutMedia Queries Level 5 で追加 出力デバイスのビデオ・プレーンが対応する色の範囲 srgb sRGBの色域、もしくはそれより広い範囲
p3 DCI-P3の色域、もしくはそれより広い範囲
rec2020 Rec.2020の色域、もしくはそれより広い範囲
video-dynamic-rangeMedia Queries Level 5 で追加 出力デバイスのビデオ・プレーンのダイナミック・レンジ high ピーク輝度が高く、コントラスト比が高く、色深度が24ビットもしくは8ビットより大きい
standard high”の条件のいずれかを満たさない
scriptingMedia Queries Level 5 で追加 スクリプトが利用できるかどうか none スクリプトは利用できない
initial-only スクリプトは文書を読み込んでいる間のみ利用できる
enabled スクリプトが利用できる
prefers-reduced-motionMedia Queries Level 5 で追加 ユーザーが最小限のアニメーションを望むかどうか no-preference ユーザーは設定を行っていない
reduce ユーザーは最小限のアニメーションを望む
prefers-reduced-transparencyMedia Queries Level 5 で追加 ユーザーは最小限の透明効果を望むかどうか no-preference ユーザーは設定を行っていない
reduce ユーザーは最小限の透明効果を望む
prefers-contrastMedia Queries Level 5 で追加 ユーザーが高いコントラストを望むか低いコントラストを望むか no-preference ユーザーは設定を行っていない
less ユーザーは低いコントラストを望む
more ユーザーは高いコントラストを望む
custom ユーザーは特定の色の組み合わせを望み、“less”と“more”のいずれでもない
prefers-color-schemeMedia Queries Level 5 で追加 ユーザーが明るい色遣いを望むか暗い色遣いを望むか light ユーザーはユーザーは明るい色遣いを望む、もしくはどちらが良いか明確に示していない
dark ユーザーは暗い色遣いを望む
forced-colorsMedia Queries Level 5 で追加 強制カラーモードが有効かどうか none 強制カラーモードは無効
active 強制カラーモードが有効
prefers-reduced-dataMedia Queries Level 5 で追加 ユーザーが少ないデータ量での描画を望むかどうか no-preference ユーザーは設定を行っていない
reduce ユーザーは少ないデータ量での描画を望む

使用例

すべてのデバイスを対象とする

<link rel="stylesheet" type="text/css" href="style.css" media="all">

media”属性を省略した場合もすべてのデバイスが対象となります。

スクリーンデバイスとプリンターを対象とする

<link rel="stylesheet" type="text/css" href="style.css" media="screen, print">

ビューポートの幅ごとにスタイルを切り替える

<link rel="stylesheet" type="text/css" href="style-sp.css" media="( max-width: 640px )">
<link rel="stylesheet" type="text/css" href="style-tb.css" media="( min-width: 640px ) and ( max-width: 1280px )">
<link rel="stylesheet" type="text/css" href="style-pc.css" media="( min-width: 1280px )">

レスポンシブウェブデザインのウェブサイトではビューポートの横幅に応じてスタイルシートを切り替えることでウェブページのレイアウトを切り替えます。

ブラウザのライトモードとダークモードでテーマカラーを変える

<link name="theme-color" content="#a2d7dd" media="(prefers-color-scheme: light)">
<link name="theme-color" content="#1f3134" media="(prefers-color-scheme: dark)">
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク