resolution media query
デバイスのピクセル密度(dpi / dppx)を検出し、高解像度ディスプレイ向けの最適なアセットを提供できる。Retinaディスプレイなどの高DPIデバイスに対して高解像度画像を出し分けるのに使用する。-webkit-min-device-pixel-ratio の標準代替となる。
概要
デバイスのピクセル密度(dpi / dppx)を検出し、高解像度ディスプレイ向けの最適なアセットを提供できる。Retinaディスプレイなどの高DPIデバイスに対して高解像度画像を出し分けるのに使用する。-webkit-min-device-pixel-ratio の標準代替となる。
対応ブラウザ
デスクトップ
Chrome 68+
Edge 79+
Safari 16+
Firefox 62+
モバイル
Chrome Android 68+
Safari iOS 16+
Firefox Android 62+
基本構文
CSS
/* 2倍以上の高解像度ディスプレイ */
@media (min-resolution: 2dppx) {
.logo {
background-image: url('logo@2x.png');
background-size: 200px 60px;
}
}
/* 印刷用の高解像度 */
@media print and (min-resolution: 300dpi) {
.chart {
background-image: url('chart-hires.png');
}
} 実務での使いどころ
-
Retina対応画像
高解像度ディスプレイに2x/3xの画像を出し分けてシャープな表示を実現する。
注意点
- 現代では <img srcset> や image-set() の方が画像の出し分けには適しているケースが多い。
アクセシビリティ
- 高解像度画像の提供はテキストの代わりに画像を使うケースでの視認性向上に寄与するが、alt テキストの設定も忘れない。