


Comment détecter avec précision les DPI/PPI de JS/CSS face à la tromperie des appareils ?
Détection du DPI/PPI du système à partir de JS/CSS
Arrière-plan
Maintenir une expérience utilisateur cohérente sur tous les appareils avec différents paramètres DPI/PPI est crucial pour les applications modernes qui génèrent des images haute résolution. Cependant, la détection précise du DPI/PPI de l'appareil présente des défis, car les méthodes traditionnelles peuvent ne pas fournir de résultats fiables.
Appareil couché : une fausse lecture de 96 ppi
Votre approche initiale utilisant un élément avec un "fixe" 1in" de largeur en CSS et vérifier son offsetWidth semble raisonnable. Cependant, il est connu que l'iPhone déclare erronément son PPI, donnant une fausse valeur de 96ppi. Cette fausse lecture rend cette méthode peu fiable.
Approche alternative : dimensions d'affichage de l'appareil
Une autre solution potentielle consiste à récupérer les dimensions d'affichage de l'appareil en pouces et à les diviser par la largeur en pixels. Cependant, accéder à ces dimensions n'est pas simple en JS/CSS.
Solution : DevicePixelRatio
Heureusement, il existe une méthode fiable pour obtenir le DPI/PPI de l'appareil :
- Utilisez window.devicePixelRatio : Cette propriété fournit le rapport entre les pixels de l'écran de l'appareil et les pixels CSS.
- Créer un élément de test : Créez un élément invisible avec une hauteur et une largeur de 1 pouce en CSS.
- Récupérer la résolution d'affichage : Calculez le DPI/PPI en multipliant la largeur et la hauteur du décalage de l'élément par le devicePixelRatio.
<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>
Cette méthode fournit des lectures DPI/PPI précises sur divers appareils, y compris ceux qui peuvent déclarer de manière erronée leur PPI en utilisant les méthodes traditionnelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Quelle que soit le stade dans lequel vous vous trouvez en tant que développeur, les tâches que nous effectuons - qu'elles soient grandes ou petites - ont un impact énorme dans notre croissance personnelle et professionnelle.

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire
