Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【CSS Modules】resolutionメディア機能の使い方

resolutionメディア機能の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

resolutionプロパティは、表示デバイスのピクセル密度(解像度)に関する情報を保持するメディア特性です。このプロパティは、主にCSSのメディアクエリ内で使用され、ユーザーが利用しているデバイスの解像度に応じて異なるスタイルを適用するために利用されます。

具体的には、画面の物理的なサイズに対してどれだけのピクセルが詰め込まれているかを示し、その密度を計測するための単位として「dpi」(dots per inch、1インチあたりのドット数)、「dpcm」(dots per centimeter、1センチメートルあたりのドット数)、「dppx」(dots per pixel、1CSSピクセルあたりのデバイスピクセル数)などを使用します。例えば、@media screen and (min-resolution: 2dppx) のように記述することで、Retinaディスプレイのような高解像度デバイスに対してのみ特定のCSSスタイルを適用できます。

システムエンジニアを目指す初心者の方にとって、このプロパティはレスポンシブデザインを実現する上で非常に重要です。スマートフォンやタブレット、デスクトップPCなど、多種多様なデバイスが存在する現代において、それぞれのデバイスの解像度に最適化された表示を提供することで、ユーザー体験を向上させることができます。特に、高解像度デバイス向けに画質の良い画像を読み込んだり、文字サイズやレイアウトを微調整したりする際に、min-resolutionmax-resolutionと組み合わせて活用されます。これにより、どのデバイスからアクセスしてもウェブサイトが美しく、かつ効率的に表示されるように調整することが可能です。

公式リファレンス: resolution

構文(syntax)

1@media (min-resolution: 192dpi) {
2  /* ここに、指定された解像度以上のデバイスに適用するCSSスタイルを記述します */
3}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

CSS resolution メディアクエリで解像度別スタイルを適用する

1/*
2 * resolutionメディア特性のサンプルコード。
3 * デバイスのピクセル密度(解像度)に応じてスタイルを適用します。
4 */
5
6/* 標準的な解像度 (例: 1dppx 未満) のデバイス向けスタイル */
7body {
8  background-color: lightblue; /* 背景色を水色に設定 */
9  color: black; /* テキストの色を黒に設定 */
10  font-family: sans-serif;
11  padding: 20px;
12}
13
14/* 高解像度ディスプレイ (例: 2dppx 以上) のデバイス向けスタイル */
15/* 2dppx (dots per pixel) は一般的な高解像度ディスプレイの基準値です。 */
16@media (min-resolution: 2dppx) {
17  body {
18    background-color: darkred; /* 背景色を濃い赤色に変更 */
19    color: white; /* テキストの色を白に変更 */
20  }
21}

このサンプルコードは、CSSのresolutionメディア特性を活用し、デバイスの画面解像度(ピクセル密度)に応じてウェブページの表示スタイルを切り替える方法を示しています。resolutionは、デバイスがどれくらいの細かさで画像を表現できるかを示すもので、主に高解像度ディスプレイへの対応に利用されます。

まず、コードの冒頭では、標準的な解像度のデバイス向けに、body要素の背景色を水色に、テキストの色を黒に設定しています。これは、特定の解像度に関する条件が適用されない場合の基本的なスタイルです。

次に登場する@media (min-resolution: 2dppx)は、「最小解像度が2dppx以上のデバイス」という条件を表すメディアクエリです。ここで使われているdppxは「dots per pixel」の略で、1CSSピクセルに対してデバイスが持つ物理ピクセルの数を意味します。この数値が高いほど、画面の表示がより精細であることを示します。この条件に合致する、例えばRetinaディスプレイなどの高解像度ディスプレイを持つデバイスでは、body要素の背景色が濃い赤色に、テキストの色が白色に変更されます。

resolutionメディア特性自体は、直接的な引数を取ったり、値を返したりするものではありません。その代わりに、min-resolutionmax-resolutionといった形でメディアクエリの条件式として利用され、デバイスの解像度に応じて適用するCSSスタイルを制御します。これにより、様々なディスプレイ環境において、ウェブサイトの見た目を最適化し、視覚的に優れたユーザー体験を提供することが可能になります。

resolutionメディア特性は、デバイスのピクセル密度(解像度)に応じてスタイルを適用します。Retinaディスプレイのような高解像度デバイスへの対応に不可欠です。サンプルコードの2dppx(dots per pixel unit)は一般的な高解像度ディスプレイの目安ですが、これはあくまで基準値であり、実際のデバイスや将来的な規格によって変動する可能性があります。そのため、複数のデバイスでの実機確認が非常に重要です。また、高解像度ディスプレイでは通常の画像がぼやけて見えるため、CSSスタイルだけでなく、HTMLのsrcset属性やimage-set()関数などを用いて、高解像度用の画像を別途用意するケースが多いことも覚えておきましょう。これらの要素を複合的に考慮し、適切な対応を行うことが、ユーザー体験を向上させる上で欠かせません。

関連コンテンツ

関連プログラミング言語