Todas estas respuestas enumeradas anteriormente, que usan max-device-width
o max-device-height
para consultas de medios, sufren de errores muy fuertes: también se dirigen a muchos otros dispositivos móviles populares (probablemente no deseados y nunca probados, o que llegarán al mercado en el futuro).
Estas consultas funcionarán para cualquier dispositivo que tenga una pantalla más pequeña , y probablemente su diseño se romperá.
Combinado con consultas de medios similares específicas del dispositivo (para HTC, Samsung, IPod, Nexus ...), esta práctica lanzará una bomba de tiempo. Para la depuración, esta idea puede hacer que su CSS sea un spagetti no controlado. Nunca puede probar todos los dispositivos posibles.
Tenga en cuenta que la única consulta de medios siempre dirigida a IPhone5 y nada más , es:
/* iPhone 5 Retina regardless of IOS version */
@media (device-height : 568px)
and (device-width : 320px)
and (-webkit-min-device-pixel-ratio: 2)
/* and (orientation : todo: you can add orientation or delete this comment)*/ {
/*IPhone 5 only CSS here*/
}
Tenga en cuenta que exacto ancho y la altura , no el ancho máximo.
Ahora, ¿cuál es la solución? Si desea escribir una página web que se vea bien en todos los dispositivos posibles, la mejor práctica es utilizar la degradación
/ * patrón de degradación, estamos verificando el ancho de la pantalla solo con seguridad, esto cambiará al pasar de vertical a horizontal * /
/*css for desktops here*/
@media (max-device-width: 1024px) {
/*IPad portrait AND netbooks, AND anything with smaller screen*/
/*make the design flexible if possible */
/*Structure your code thinking about all devices that go below*/
}
@media (max-device-width: 640px) {
/*Iphone portrait and smaller*/
}
@media (max-device-width: 540px) {
/*Smaller and smaller...*/
}
@media (max-device-width: 320px) {
/*IPhone portrait and smaller. You can probably stop on 320px*/
}
Si más del 30% de los visitantes de su sitio web provienen de dispositivos móviles, ponga este esquema al revés, proporcionando el enfoque de dispositivos móviles primero. Usar min-device-width
en ese caso. Esto acelerará la representación de la página web para navegadores móviles.