¿Cuál es la diferencia entre screen
y only screen
en las consultas de los medios?
<link media="screen and (max-device-width: 480px)" rel="stylesheet" href="m.css" />
<link media="only screen and (max-device-width: 480px)" rel="stylesheet" href="m.css" />
¿Por qué estamos obligados a usar only screen
? ¿ screen
No proporciona por sí misma suficiente información para ser presentada solo para la pantalla?
He visto muchos sitios web receptivos utilizando cualquiera de estas tres formas diferentes:
@media screen and (max-width:632px)
@media (max-width:632px)
@media only screen and (max-width:632px)
fuente
only
palabra clave ocultará las hojas de estilo de los navegadores más antiguos, vea la respuesta de @hybrid a continuación. Él lo explica muy bien.media
atributo dellink
elemento.screen
como algo que se enumera en los otros tipos de medios.Lo siguiente es de documentos de Adobe .
La especificación de consultas de medios también proporciona la palabra clave
only
, que está destinada a ocultar consultas de medios de navegadores antiguos. Al igualnot
, la palabra clave debe aparecer al comienzo de la declaración. Por ejemplo:Los navegadores que no reconocen las consultas de medios esperan una lista de tipos de medios separados por comas, y la especificación dice que deben truncar cada valor inmediatamente antes del primer carácter no alfanumérico que no es un guión. Por lo tanto, un navegador antiguo debería interpretar el ejemplo anterior de esta manera:
Debido a que no existe el tipo de medio, solo se ignora la hoja de estilo. Del mismo modo, un navegador antiguo debería interpretar
como
En otras palabras, debe aplicar las reglas de estilo a todos los dispositivos de pantalla, aunque no sepa qué significan las consultas de medios.
Desafortunadamente, IE 6–8 no pudo implementar la especificación correctamente.
En lugar de aplicar los estilos a todos los dispositivos de pantalla, ignora la hoja de estilos por completo.
A pesar de este comportamiento, todavía se recomienda prefijar las consultas de medios solo si desea ocultar los estilos de otros navegadores menos comunes.
Entonces, usando
y
tendrá el mismo efecto en IE6-8: ambos evitarán que se usen esos estilos. Sin embargo, aún se descargarán.
Además, en los navegadores que admiten consultas de medios CSS3, ambas versiones cargarán los estilos si el ancho de la ventana gráfica es mayor
401px
y el tipo de medio es pantalla.No estoy completamente seguro de qué navegadores que no admiten consultas de medios CSS3 necesitarían la
only
versiónOpuesto a
para asegurarse de que no se interprete como
Sería una buena prueba para alguien con acceso a un laboratorio de dispositivos.
fuente
Para diseñar muchos teléfonos inteligentes con pantallas más pequeñas, puede escribir:
Para evitar que los navegadores antiguos vean una hoja de estilo de teléfono iPhone o Android, puede escribir:
Lea este artículo para más http://webdesign.about.com/od/css3/a/css3-media-queries.htm
fuente
only
palabra clave en ese contexto, ¿verdad?La respuesta de @hybrid es bastante informativa, excepto que no explica el propósito mencionado por @ashitaka "¿Qué pasa si usa el enfoque Mobile First? Entonces, primero tenemos el CSS móvil y luego usamos min-width para dirigirnos a sitios más grandes. No deberíamos usar la única palabra clave en ese contexto, ¿verdad? "
Desea agregar aquí que el propósito es simplemente evitar que los navegadores no compatibles usen ese estilo de Otro dispositivo como si comience desde la "pantalla" sin que lo lleve a la pantalla, donde como si comience desde el estilo "solo" se ignorará.
Respondiendo a ashitaka considera este ejemplo
Si no usamos "solo", seguirá funcionando, ya que el estilo de escritorio también se utilizará con sorprendentes estilos de Android, pero con una sobrecarga innecesaria. En este caso, si un navegador no es compatible, recurrirá a la segunda hoja de estilo ignorando la primera.
fuente
screen
aquí es establecer el tamaño de pantalla de la consulta de medios. Por ejemplo, el ancho máximo del área de visualización es 480px. Por lo tanto, está especificando la pantalla en lugar de los otros tipos de medios disponibles.only screen
aquí se utiliza para evitar que los navegadores más antiguos que no admiten consultas de medios con funciones de medios apliquen los estilos especificados.fuente