Últimamente, he estado diseñando sitios que son más receptivos y he estado usando consultas de medios de CSS con frecuencia. Un patrón que noté es que el orden en que se definen las consultas de los medios realmente importa. No lo probé en todos los navegadores, solo en Chrome. ¿Hay una explicación para este comportamiento? Algunas veces se vuelve frustrante cuando su sitio no funciona como debería y no está seguro de si es la consulta o el orden en el que se escribió la consulta.¿Por qué importa el orden de las consultas de medios en CSS?
He aquí un ejemplo:
HTML
<body>
<div class="one"><h1>Welcome to my website</h1></div>
<div class="two"><a href="#">Contact us</a></div>
</body>
CSS:
body{
font-size:1em; /* 16px */
}
.two{margin-top:2em;}
/* Media Queries */
@media (max-width: 480px) {
.body{font-size: 0.938em;}
}
/* iphone */
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
body {font-size: 0.938em;}
}
/*if greater than 1280x800*/
@media (min-width: 1200px) {
.two{margin-top:8em;}
}
/*1024x600*/
@media (max-height: 600px) {
.two{margin-top:4em;}
}
/*1920x1024*/
@media (min-height: 1020px) {
.two{margin-top:9em;}
}
/*1366x768*/
@media (min-height: 750px) and (max-height: 770px) {
.two{margin-top:7em;}
}
Sin embargo, Si escribiera la consulta para 1024x600 en el pasado, el navegador ignoraría y aplicar el valor de margen especificado en el inicio del CSS (margin-top: 2em).
/* Media Queries - Re-arranged version */
@media (max-width: 480px) {
.body{font-size: 0.938em;}
}
/* iphone */
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
body {font-size: 0.938em;}
}
/*if greater than 1280x800*/
@media (min-width: 1200px) {
.two{margin-top:8em;}
}
/*1920x1024*/
@media (min-height: 1020px) {
.two{margin-top:9em;}
}
/*1366x768*/
@media (min-height: 750px) and (max-height: 770px) {
.two{margin-top:7em;}
}
/*1024x600*/
@media (max-height: 600px) {
.two{margin-top:4em;}
}
Si mi comprensión de preguntas de los medios son correctos, la orden no debería importar, pero parece que lo hace. ¿Cuál podría ser la razón?
Gracias. Nunca imaginé una lógica tan simple que arruinaría mi sueño por las noches juntas. Gracias. – dsignr
En una hoja de estilos si se aplican las mismas reglas sin ninguna consulta de medios y luego en una consulta de medios para dispositivos móviles de pantalla pequeña y hay algunas imágenes para descargar. Entonces, ¿qué pasaría, el navegador ignorará las reglas sin consulta de medios y aplicará solo las reglas específicas de consulta de medios? –