メディアクエリについて調べる

メディアタイプ

ざっくりと表示媒体を分類するメディアクエリである。

update

コンテンツの表示をどの程度の頻度で更新できるかで分岐させることができる。

@media (update: fast)

{

	body

	{

		background: tomato;

	}

}

orientation

メディアディスプレイが縦長なのか、横長なのかで作用を変えることができる。

ビューポート

レスポンシブデザインでよく使われるメディアクエリである。メディアディスプレイのビューポートの高さと幅に対してmin-width、max-widthといった尺度を用いて使う。

prefers-color-scheme (L5)

いわゆるダークテーマへの対応に使われるメディアクエリである。OSの設定によって左右される。

@media (prefers-color-scheme: dark)

{

	body

	{

		background: dimgray;

		color: whitesmoke;

	}

}

@media (prefers-color-scheme: light) {

	body

	{

		background: whitesmoke;

		color: dimgray; 

	}

}

aspect-ratio

メディアのビューポート縦横比率による分岐をすることができる。min-aspect-ratio、max-aspect-ratioと合わせて使用する。

@media (min-aspect-ratio: 16/9)

{

	body

	{

		background: tomato;

	}

}

resolution

メディアディスプレイの解像度をもとに分岐することができる。min-resolution、max-resolutionで下記単位を利用して指定する。

@media (min-resolution: 72dpi)

{

	p

	{

		body: yellow;

	}

}

color

メディアディスプレイの色深度(color depth)を元に分岐する。

//デフォルト

@media (color)

{

	body

	{

		color: tomato;

	}

}



//8bit (2^8)以上の場合

@media (min-color: 8)

{

	body

	{

		color: skyblue;

	}

}

color-index

メディアディスプレイの対応色数によって分岐することができる。colorではビット数で指定していたがcolor-indexではダイレクトに数で指定する。min-color-index、min-color-indexで色数を指定する。

color-gamut (L4)

メディアディスプレイの色空間(color space)を元に分岐させる。

@media (color-gamut: srgb)

{

	body

	{

		color: tomato;

	}

}

@media (color-gamut: rec2020)

{

	body

	{

		color: skyblue;

	}

}

monochrome

メディアディスプレイがモノクロかどうかを判定して分岐することができる。color-xxx系とは真逆でモノクロかどうかを判定するためにある。モノクロ機器であれば0以上のピクセルあたりビット数を返す。min-monochrome、max-monochromeで範囲指定が可能。

//カラーディスプレイの検出

@media (monochrome: 0)

{

	  body

	{

		color: tomato;

	}

}

grid

メディアディスプレイがグリッドベースに対応しているかで分岐させる。

//ビットマップに対応したディスプレイ

@media (grid: 0)

{

	body

	{

		color: skyblue;

	}

}

//グリッドベースに対応したディスプレイ

@media (grid: 1)

{

	body

	{

		color: tomato;

	}

}

scan

メディアディスプレイの描画プロセスによって分岐することができる。

@media (scan: progressive)

{

	body

	{

		color:tomato;

	}

}

any-hover (L4)

メディアディスプレイがhoverエフェクトの対象となる機器であるかで分岐することができる。パソコンとスマホの分類ができる。

//パソコンでのみ機能するhoverエフェクト

@media (any-hover: hover)

{

	body:hover {

		background: tomato;

	}

}

hover (L4)

@media (hover: hover)

{

	body

	{

		background: tomato;

	}

}

any-pointer (L4)

少なくとも1つが存在し、かつすべてのポインティングデバイスの精度を元に分岐することができる。1つのポインティングデバイスについて判定する場合はpointerを使う。

//パソコンでのみ機能する

@media (any-pointer: fine)

{

	body

	{

		background: tomato;

	}

}

pointer (L4)

少なくとも1つが存在し、かつその中の1つのポインティングデバイスの精度を元に分岐することができる。複数のポインティングデバイスについて判定する場合はany-pointerを使う。

//パソコンでのみ機能する

@media (pointer: fine)

{

	body

	{

		background: tomato;

	}

}

display-mode

PWAに対応したアプリの表示状態で分岐することができる。

@media all and (display-mode: fullscreen)

{

	body

	{

		background: tomato;

	}

}

prefers-reduced-motion (L5)

ユーザーOSでアニメーションの可否を設定している場合に分岐できる。

@media (prefers-reduced-motion: reduce)

{

	.animationnName

	{

		animation: none;

	}

}

prefers-contrast

まだ未実装

scripting

まだ未実装

overflow-block

ffのみ対応

overflow-inline

ffのみ対応

inverted-colors

意味不明でsafariだけ

prefers-reduced-transparency (L5)

まだきてない

light-level (L5)

まだきてない