目次
JS/CSS からのシステム DPI/PPI の検出
バックグラウンド
デバイスの横たわる: 偽の 96ppi 読み取り
代替アプローチ: デバイスのディスプレイの寸法
解決策: DevicePixelRatio
ホームページ ウェブフロントエンド CSSチュートリアル デバイスの欺瞞に直面して JS/CSS から DPI/PPI を正確に検出するにはどうすればよいですか?

デバイスの欺瞞に直面して JS/CSS から DPI/PPI を正確に検出するにはどうすればよいですか?

Oct 24, 2024 am 05:32 AM

How to Accurately Detect DPI/PPI from JS/CSS in the Face of Device Deception?

JS/CSS からのシステム DPI/PPI の検出

バックグラウンド

さまざまな DPI/PPI 設定を持つデバイス間で一貫したユーザー エクスペリエンスを維持することが重要です高解像度の画像を生成する最新のアプリケーション向け。ただし、従来の方法では信頼できる結果が得られない可能性があるため、デバイスの DPI/PPI を正確に検出することには課題があります。

デバイスの横たわる: 偽の 96ppi 読み取り

固定 " を持つ要素を使用した最初のアプローチCSS で 1 インチの幅を指定し、その offsetWidth を確認するのが合理的だと思われます。ただし、iPhone は PPI を誤って報告し、96ppi という誤った値を与えることが知られています。この誤った読み取りにより、このメソッドは信頼できなくなります。

代替アプローチ: デバイスのディスプレイの寸法

もう 1 つの考えられる解決策は、デバイスのディスプレイの寸法をインチ単位で取得し、それをピクセル単位の幅で割ることです。ただし、JS/CSS でこれらのディメンションにアクセスするのは簡単ではありません。

解決策: DevicePixelRatio

幸いなことに、デバイスの DPI/PPI を取得する信頼できる方法があります:

  1. Window.devicePixelRatio を使用します: このプロパティは、デバイスの画面上のピクセルと CSS ピクセルの比率を提供します。
  2. テスト要素の作成: で非表示の要素を作成します。 CSS の高さと幅は 1 インチです。
  3. ディスプレイ解像度の取得: 要素のオフセット幅と高さに devicePixelRatio を乗算して DPI/PPI を計算します。
<code class="javascript">const testDiv = document.createElement('div');
testDiv.style.height = '1in';
testDiv.style.left = '-100%';
testDiv.style.position = 'absolute';
testDiv.style.top = '-100%';
testDiv.style.width = '1in';
document.body.appendChild(testDiv);

const DPI_X = testDiv.offsetWidth * window.devicePixelRatio;
const DPI_Y = testDiv.offsetHeight * window.devicePixelRatio;

console.log(DPI_X, DPI_Y);</code>
ログイン後にコピー

この方法は、従来の方法を使用して PPI を誤って報告する可能性のあるデバイスを含む、さまざまなデバイスで正確な DPI/PPI 測定値を提供します。

以上がデバイスの欺瞞に直面して JS/CSS から DPI/PPI を正確に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

Eleventyで独自のBragdocを作成します Eleventyで独自のBragdocを作成します Mar 18, 2025 am 11:23 AM

開発者としての段階に関係なく、私たちが完了したタスクは、大小を問わず、個人的および専門的な成長に大きな影響を与えます。

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

See all articles