Réponse courte
Le ratio de pixels du dispositif est le rapport entre les pixels physiques et les pixels logiques. Par exemple, l'iPhone 4 et l'iPhone 4S présentent un ratio de pixels de 2, car 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 la suivante :
Où :
est le résolution physique linéaire
et :
est la logique résolution linéaire
D'autres appareils signalent des rapports de pixels différents, y compris des rapports non entiers. Par exemple, le Nokia Lumia 1020 indique 1,6667, le Samsumg Galaxy S4 indique 3, et l'Apple iPhone 6 Plus indique 2,46. (source : dpilove ) . Mais cela ne change rien au principe, car vous ne devez 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", mais plutôt comme un mesure angulaire non linéaire de angle de vue, qui est d'environ d'un pouce à bout de bras. Source : Longueurs absolues des CSS
Cela a de nombreuses implications lorsqu'il s'agit de conception de sites Web, comme la préparation de ressources d'images haute définition et l'application minutieuse de différentes images à différents ratios de pixels de dispositifs. Vous ne voudriez pas obliger un appareil bas de gamme à télécharger une image à très haute résolution, pour ensuite la réduire localement. Vous ne voudriez pas non plus que les appareils haut de gamme modifient l'échelle des images à faible résolution pour offrir une expérience utilisateur floue.
Si vous êtes obligé d'utiliser des images bitmap, pour tenir compte des différents rapports de pixels des appareils, vous devriez utiliser Requêtes médias CSS ou le Élément d'image HTML pour fournir différents ensembles de ressources à différents groupes de dispositifs. Combinez cela avec des astuces comme background-size: cover
ou définir explicitement l'option background-size
en valeurs de 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'élément px
unité en CSS siempre fonctionne sur pixels logiques .
Un argument en faveur des graphiques vectoriels
Au fur et à mesure de l'apparition de nouveaux types de périphériques, il devient plus délicat de leur fournir à tous des ressources bitmap adéquates. En CSS, les media queries sont actuellement le seul moyen, et en HTML5, la fonction élément d'image vous permet d'utiliser différentes sources pour différentes media queries, mais la prise en charge n'est pas encore totale, car la plupart des développeurs web doivent encore prendre en charge IE11 pendant un certain temps. (source : caniuse ) .
Si vous avez besoin d'images nettes pour des icônes, des dessins au trait, des éléments de conception qui ne sont pas des photos vous devez commencer à penser au SVG, qui s'adapte parfaitement à toutes les résolutions.