qu'est-ce que le ratio de pixels de l'appareil?

ceci est mentionné chaque article sur mobile web, mais nulle part je peux trouver une explication de ce qui fait exactement cet attribut mesure.

Est-ce que quelqu'un peut s'il vous plaît élaborer ce que les questions comme cette vérification?

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (-o-device-pixel-ratio: 3/2), 
only screen and (min-device-pixel-ratio: 1.5) {

    //high resolution images go here

}
140
css
demandé sur ilyo 2012-01-09 12:34:32

4 réponses

réponse Courte

le rapport des pixels de l'appareil est le rapport entre les pixels physiques et les pixels logiques. Par exemple, l'iPhone 4 et l'iPhone 4S rapportent un rapport de pixel d'appareil de 2, parce que la résolution linéaire physique est le double de la résolution linéaire logique.

  • résolution physique: 960 x 640
  • résolution logique: 480 x 320

la formule est:

linres_p/linres_l

où:

linres_p est le résolution linéaire physique

et:

linres_l est la logique résolution linéaire

les autres appareils signalent des rapports de pixels différents, y compris les pixels non entiers. Par exemple, le rapport Nokia Lumia 1020 1.6667, le Samsumg Galaxy S4 reports 3, et L'Apple iPhone 6 Plus reports 2.46 (source: dpilove ) . Mais cela ne change rien en principe, car vous ne devriez jamais concevoir pour un appareil spécifique.

Discussion

le "pixel" CSS n'est même pas défini comme "un élément d'image sur un écran quelconque", mais plutôt comme une mesure angulaire non linéaire de 0.0213° angle d'observation, qui est d'environ 1/96 d'un pouce à bout de bras. Source: Absolu CSS Longueurs

cela a beaucoup d'implications quand il s'agit de la conception web, comme la préparation de ressources d'image haute définition et l'application soigneuse de différentes images à différents rapports de pixels d'appareil. Vous ne voudriez pas forcer un appareil bas de gamme à télécharger une image de très haute résolution, seulement pour réduisez-le localement. Vous ne voulez pas non plus d'appareils haut de gamme pour haut de gamme des images de faible résolution pour une expérience utilisateur floue.

si vous êtes bloqué avec des images bitmap, pour accommoder pour beaucoup de rapports de pixel de dispositif différents, vous devez utiliser css Media Queries pour fournir des ensembles différents de ressources pour différents groupes de dispositifs. Combinez cela avec de belles astuces comme background-size: cover ou définir explicitement le background-size aux valeurs en pourcentage.

exemple

#element { background-image: url('lores.png'); }

@media only screen and (min-device-pixel-ratio: 2) {
    #element { background-image: url('hires.png'); }
}

@media only screen and (min-device-pixel-ratio: 3) {
    #element { background-image: url('superhires.png'); }
}

de cette façon, chaque type de périphérique ne charge que la ressource image correcte. Gardez également à l'esprit que l'unité px dans CSS toujours fonctionne sur pixels logiques .

Un cas pour les graphiques vectoriels

comme de plus en plus de types de dispositifs apparaissent, il obtient plus difficile de fournir à tous des ressources bitmap adéquates. Dans CSS, les requêtes médias est actuellement le seul moyen, et dans HTML5, le élément d'image vous permet d'utiliser différentes sources pour les différentes requêtes médias, mais le soutien n'est toujours pas 100% puisque la plupart des développeurs web ont encore à soutenir IE11 pendant un certain temps plus (source: caniuse ) .

si vous avez besoin d'images nettes pour icônes, line-art, design éléments que ne sont pas des photos , vous devez commencer à penser à SVG, qui se balance magnifiquement à toutes les résolutions.

121
répondu Anders Tornblad 2017-09-19 20:38:09

Appareil Pixel Ratio == CSS Ratio de Pixel

dans le monde du développement web, le rapport des pixels de l'appareil (aussi appelé Rapport des pixels CSS) est ce qui détermine la façon dont la résolution d'écran d'un appareil est interprétée par le CSS.

le CSS d'un navigateur calcule la résolution logique (ou interprétée) d'un dispositif au moyen de la formule:

formula

par exemple:

Apple iPhone 6s

  • Résolution réelle: 750 x 1334
  • CSS Pixel Ratio: 2
  • Résolution Logique:

formula

lors de l'affichage d'une page web, le CSS pensera que l'appareil a un écran de résolution de 375x667 et les requêtes des médias répondront comme si l'écran était 375x667 . Mais les éléments rendus sur l'écran seront deux fois plus nets qu'un écran 375x667 réel parce qu'il y a deux fois plus de pixels physiques dans l'écran physique.

quelques autres exemples:

Samsung Galaxy S4

  • résolution actuelle: 1080 x 1920
  • CSS Pixel Ratio: 3
  • Résolution Logique:

formula

iPhone 5s

  • Résolution réelle: 640 x 1136
  • CSS Pixel Ratio: 2
  • Résolution Logique:

formula

pourquoi le rapport des pixels de L'appareil existe-t-il?

la raison pour laquelle CSS pixel ratio a été créé est parce que les écrans de téléphones obtenez des résolutions plus élevées, si chaque périphérique avait encore un rapport de pixel CSS de 1, alors les pages web seraient trop petites pour être vues.

un moniteur de bureau typique plein écran est un environ 24 " à la résolution 1920x1080. Imaginez si ce moniteur était réduit à environ 5" mais avait la même résolution. Voir des choses sur l'écran serait impossible parce qu'ils seraient si petits. Mais les fabricants sortent avec des écrans de téléphone de résolution 1920x1080 régulièrement maintenant.

ainsi le rapport de pixel d'appareil a été inventé par les fabricants de téléphone afin qu'ils puissent continuer à pousser la résolution, la netteté et la qualité des écrans de téléphone, sans faire des éléments sur l'écran trop petits pour voir ou lire.

voici un outil qui vous indique également la densité en pixels de votre périphérique actuel:

http://bjango.com/articles/min-device-pixel-ratio/

130
répondu Jake Wilson 2017-02-20 21:55:13

https://developer.mozilla.org/en/CSS/Media_queries#-moz-device-pixel-ratio

- moz-device-pixel-ratio

Donne le nombre de pixels de périphérique par pixel CSS.

c'est presque auto-explicatif. le nombre décrit le rapport de combien de pixels "réels" (pixels physiques de l'écran) sont utilisés pour afficher un pixel " virtuel "(taille définie in CSS).

8
répondu oezi 2012-01-09 08:38:08

Boris Smus de l'article Haute résolution des Images pour la Variable Densités de Pixels a une définition plus précise de l'appareil ratio de pixel: le nombre de périphérique pixels par pixel CSS est une bonne approximation, mais pas toute l'histoire.

notez que vous pouvez obtenir le DPR utilisé par un appareil avec window.devicePixelRatio .

7
répondu Sam Dutton 2015-03-19 14:35:53