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

【CSS Modules】prefers-reduced-dataメディア機能の使い方

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

作成日: 更新日:

基本的な使い方

prefers-reduced-dataプロパティは、Webサイトを閲覧しているユーザーが、データ通信量の削減を希望しているかどうかを保持するプロパティです。このプロパティはCSSのメディア特性の一つとして、主にメディアクエリ内で使用されます。

ユーザーは、オペレーティングシステムやブラウザの設定において、データセーバーモードなどを有効にすることで、データ通信量の削減を希望する意思を示すことができます。prefers-reduced-dataプロパティは、そのユーザー設定をWebサイトが検知できるようにするために存在します。

このプロパティは、以下のいずれかの値を持ちます。

  • no-preference: ユーザーが特にデータ通信量の削減を希望していない状態です。
  • reduce: ユーザーがデータ通信量の削減を希望している状態です。

例えば、Webサイトの制作者は、ユーザーがデータ通信量の削減を希望している場合に、画像を高解像度から低解像度に切り替えたり、動画の自動再生を停止したり、アニメーションの量を減らしたりするなど、通信量を抑えたコンテンツや表示に動的に変更できます。これにより、モバイルデータ通信の制限があるユーザーや、通信環境が不安定なユーザーに対しても、より快適で高速なWeb体験を提供することが可能になります。Webサイトがユーザーの環境に配慮し、最適なコンテンツを提供するための重要な機能の一つです。

公式リファレンス: prefers-reduced-data

構文(syntax)

1@media (prefers-reduced-data: reduce) {
2  /* ここに、データ使用量を抑えたいユーザー向けのスタイルを記述します。 */
3  /* 例: 画像の解像度を下げる、アニメーションを無効にするなど。 */
4}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

prefers-reduced-data でデータ通信量を削減する

1/*
2 * prefers-reduced-data メディア特性のサンプルコード
3 * ユーザーがデータ通信量の削減を希望している場合に適用されるスタイルです。
4 */
5@media (prefers-reduced-data) {
6  /*
7   * データ削減モードが有効な場合、ページの背景画像を読み込まず非表示にします。
8   * これにより、ユーザーのデータ通信量を節約し、ページの読み込みを高速化できます。
9   * 代わりに、シンプルな背景色を設定します。
10   */
11  body {
12    background-image: none;
13    background-color: #f0f0f0; /* 背景画像がない場合の代替色 */
14  }
15}

prefers-reduced-dataは、CSSのメディア特性の一つで、ウェブサイトの訪問者がデータ通信量の削減を希望しているかどうかを判断するために使用されます。ユーザーがオペレーティングシステムやブラウザの設定で「データセーバーモード」や「低データモード」などを有効にしている場合に、この特性が有効であると認識されます。

この特性は、特定の値を渡す「引数」を持ちません。また、何らかの処理結果を返す「戻り値」もありません。単に、ユーザーがデータ通信量の削減を希望している状態か否かを判定するための条件として機能します。

サンプルコードでは、@media (prefers-reduced-data)という記述によって、ユーザーがデータ削減を希望している場合にのみ、特定のスタイルが適用されるように設定されています。具体的には、ウェブページの背景画像を読み込まずに非表示にし、代わりにシンプルな背景色(#f0f0f0)を設定しています。これにより、画像ファイルのダウンロードにかかるデータ通信量を節約し、ページの読み込み速度を向上させることができます。

このようにprefers-reduced-dataを活用することで、ユーザーの通信環境や設定に配慮し、より快適なウェブ体験を提供することが可能になります。

このサンプルコードは、ユーザーがデータ通信量の削減を希望する設定をしている場合に、ページの背景画像を非表示にし、データ通信量を節約するスタイルを適用しています。注意点として、この設定はユーザーがブラウザやOSのシステムレベルで行うため、全てのユーザーが利用しているわけではありませんし、ブラウザによるサポート状況も異なります。

安全に利用するには、データ削減は背景画像だけでなく、動画、高解像度の画像、Webフォント、複雑なアニメーションなど、データ消費の大きい他の要素にも適用を検討できることを理解しましょう。最も重要なのは、データ削減モードでも、ユーザーが求める情報や機能が損なわれないよう、シンプルながらも適切な代替コンテンツや表示を提供することです。常に、ユーザー体験を第一に考えた最適化を心がけてください。

CSS prefers-reduced-data でデータ使用量を削減する

1/*
2 * prefers-reduced-data は、ユーザーがデータ使用量を最小限に抑えたい場合に適用されるメディア特性です。
3 * これが「reduce」に設定されている場合、Webサイトはデータ消費を減らすための最適化を行うべきです。
4 * 例えば、高解像度画像を低解像度版に切り替えたり、データ量の多い要素を非表示にしたりします。
5 */
6
7/* デフォルトのスタイル: データ削減が有効でない場合の表示 */
8/* 高解像度の背景画像を想定しています。 */
9.hero-banner {
10  background-image: url('https://example.com/images/hero-high-res.jpg'); /* 高解像度の背景画像へのパス */
11  background-size: cover;
12  background-position: center;
13  height: 300px; /* バナーの高さ */
14  color: #ffffff;
15  display: flex;
16  align-items: center;
17  justify-content: center;
18  font-family: sans-serif;
19  text-align: center;
20  padding: 20px;
21}
22
23/*
24 * ユーザーがデータ削減を有効にしている場合に適用されるスタイル。
25 * ブラウザやOSの設定で「データセーバー」などが有効になっていると「reduce」が適用されます。
26 */
27@media (prefers-reduced-data: reduce) {
28  .hero-banner {
29    background-image: url('https://example.com/images/hero-low-res.jpg'); /* 低解像度の背景画像に切り替え */
30    /* 背景画像を完全に削除することも、データ使用量をさらに削減する有効な方法です */
31    /* background-image: none; */
32    background-color: #6699cc; /* 背景画像がない場合の代替色 */
33  }
34
35  /* データ削減のために、表示が必須ではない装飾的な要素を非表示にする例 */
36  .decorative-icon {
37    display: none;
38  }
39}

CSSのprefers-reduced-dataは、ユーザーがデータ使用量を最小限に抑えたいという設定をしている場合に、Webサイトの表示を最適化するためのメディア特性です。この特性には特定の引数や戻り値はなく、ユーザーのオペレーティングシステムやブラウザの設定に基づいて、CSSのスタイルを適用するかどうかを判断します。

ユーザーが「データセーバー」モードなどを有効にしている場合、prefers-reduced-datareduceという値を取ります。この状態を検知するメディアクエリを使用することで、開発者はデータ消費を減らすための特定のスタイルを適用できます。

提供されたサンプルコードでは、まずデータ削減が有効でない場合のデフォルトとして、高解像度の背景画像を.hero-bannerクラスに設定しています。次に、@media (prefers-reduced-data: reduce)というメディアクエリ内で、ユーザーがデータ削減を有効にしている場合に適用されるスタイルを定義しています。ここでは、.hero-bannerの背景画像を低解像度版に切り替えたり、背景画像を完全に削除して代替色を設定したりすることで、データ量を削減する例が示されています。さらに、装飾的な.decorative-iconクラスの要素をdisplay: none;で非表示にすることも、データ削減の一環として提示されています。

このようにprefers-reduced-dataを活用することで、データ通信量に制限があるユーザーや、データプランを節約したいユーザーに対して、より高速でコスト効率の良いWeb体験を提供し、Webサイトのアクセシビリティとパフォーマンスを向上させることが可能になります。

prefers-reduced-dataは、ユーザーがデータ使用量を最小限に抑えたい場合に適用されるCSSメディア特性です。これは、ブラウザやOSの「データセーバー」機能などが有効な場合に動作します。

サンプルコードのように、この設定が「reduce」の場合には、高解像度の画像を低解像度版に切り替えたり、不要な装飾的要素を非表示にしたりして、Webサイトのデータ消費を削減してください。場合によっては、背景画像を完全に削除することも有効な手段です。

重要な注意点として、デフォルトのスタイル(データ削減が有効でない場合の表示)と、削減時のスタイルを両方定義する必要があります。ユーザー体験を大きく損なわない範囲で、必要な情報を保持しつつデータ量を最小限に抑える工夫が求められます。この特性は、ユーザーの環境への配慮を示す重要な方法の一つです。

関連コンテンツ

関連IT用語

関連プログラミング言語