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
}
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:
où:
est le résolution linéaire physique
et:
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 angle d'observation, qui est d'environ 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.
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:
par exemple:
Apple iPhone 6s
- Résolution réelle: 750 x 1334
- CSS Pixel Ratio: 2
- Résolution Logique:
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:
iPhone 5s
- Résolution réelle: 640 x 1136
- CSS Pixel Ratio: 2
- Résolution Logique:
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:
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).
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
.