Respuesta corta
La relación de píxeles del dispositivo es la relación entre píxeles físicos y píxeles lógicos. Por ejemplo, el iPhone 4 y el iPhone 4S informan una relación de píxeles del dispositivo de 2, porque la resolución lineal física es el doble de la resolución lineal lógica.
- Resolución física: 960 x 640
- Resolución lógica: 480 x 320
La formula es:
Dónde:
es la resolución lineal física
y:
es la resolución lineal lógica
Otros dispositivos informan diferentes proporciones de píxeles del dispositivo, incluidos los no enteros. Por ejemplo, el Nokia Lumia 1020 reporta 1.6667, el Samsumg Galaxy S4 reporta 3, y el Apple iPhone 6 Plus reporta 2.46 (fuente: dpilove ) . Pero esto no cambia nada en principio, ya que nunca debe diseñar para un dispositivo específico.
Discusión
El "píxel" de CSS ni siquiera se define como "un elemento de imagen en alguna pantalla", sino más bien como una medida angular no lineal del ángulo de visión, que es aproximadamente de una pulgada con el brazo extendido. Fuente: Longitudes absolutas CSS
Esto tiene muchas implicaciones cuando se trata de diseño web, como preparar recursos de imágenes de alta definición y aplicar cuidadosamente diferentes imágenes en diferentes proporciones de píxeles del dispositivo. No querría forzar a un dispositivo de gama baja a descargar una imagen de muy alta resolución, solo para reducirla localmente. Tampoco desea que los dispositivos de gama alta aumenten las imágenes de baja resolución para una experiencia de usuario borrosa.
Si está atascado con imágenes de mapa de bits, para acomodar muchas proporciones de píxeles de dispositivos diferentes, debe usar las consultas de medios CSS para proporcionar diferentes conjuntos de recursos para diferentes grupos de dispositivos. Combina esto con buenos trucos como background-size: cover
o establece explícitamente los background-size
valores porcentuales.
Ejemplo
#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 esta manera, cada tipo de dispositivo solo carga el recurso de imagen correcto. También tenga en cuenta que la px
unidad en CSS siempre opera en píxeles lógicos .
Un caso para gráficos vectoriales
A medida que aparecen más y más tipos de dispositivos, se vuelve más difícil proporcionarles a todos los recursos de mapa de bits adecuados. En CSS, las consultas de medios son actualmente la única forma, y en HTML5, el elemento de imagen le permite usar diferentes fuentes para diferentes consultas de medios, pero el soporte aún no es del 100% ya que la mayoría de los desarrolladores web todavía tienen que soportar IE11 por un tiempo más ( fuente: caniuse ) .
Si necesita imágenes nítidas para íconos, arte lineal, elementos de diseño que no sean fotos , debe comenzar a pensar en SVG, que se adapta perfectamente a todas las resoluciones.
width=device-width
tendré extendido a pantalla completa.