Media Queries para Diseño Responsive Mobile y Tablet
Resumen
¿Cómo implementar media queries en un proyecto mobile first con Flexbox?
Comenzar a diseñar sitios web con un enfoque mobile first es esencial para asegurar una experiencia de usuario óptima en dispositivos móviles y escalar adecuadamente a tabletas y escritorios. Usar media queries en CSS permite ajustar las reglas de estilos según el tamaño de la pantalla (breakpoints). A continuación, veremos cómo implementar media queries en un proyecto usando Flexbox, asegurando un diseño adecuado en distintos dispositivos.
¿Cuáles son las buenas prácticas al incluir media queries?
Cuando trabajas con media queries en un archivo CSS, es importante seguir ciertas buenas prácticas:
Ubicar siempre al final del archivo: Coloca todos los media queries en la parte inferior de tu archivo CSS. Esto facilita que los miembros del equipo identifiquen rápidamente los lugares donde se encuentran los diferentes breakpoints.
Sintaxis básica de un media query: El comando básico para escribir una media query es el siguiente:
@media(min-width:600px){/* Reglas CSS aquí */}
Usa min-width para mobile first: Al utilizar min-width, defines reglas que se aplican a partir de un cierto tamaño, por lo que comienzas optimizando para pantallas pequeñas y luego escalas hacia pantallas más grandes.
Ejemplo práctico de media queries
Aquí hay un ejemplo de cómo puedes ajustar el layout al ir pasando de un dispositivo móvil a una tableta usando media queries. Imaginemos que tienes contenedores que ocupan el 100% del ancho en dispositivos móviles y quieres cambiar esto en una tableta:
CSS Base para Mobile:
.container{width:100%;}
Media Queries para Tabletas:
En el CSS, agrega la media query para dispositivos de 600 píxeles en adelante:
¿Cómo implementar varios breakpoints en un proyecto?
Además de ajustar el diseño al pasar de un móvil a una tableta, puedes definir más breakpoints para dispositivos aún más grandes. Por ejemplo, cuando el ancho alcanza 800 píxeles, puedes hacer más ajustes:
Aquí se ve cómo los distintos elementos cambian su disposición en pantallas más grandes, adaptándose de manera fluida al tamaño del dispositivo.
¿Cómo manejar los estilos en archivos separados?
Una práctica recomendada es separar los estilos de los media queries en diferentes archivos CSS para cada tipo de dispositivo:
Creación de archivos CSS específicos: Crea archivos como tablet.css y desktop.css.
Enlace de archivos CSS con media queries:
<linkrel="stylesheet"href="tablet.css"media="screen and (min-width: 600px)"><linkrel="stylesheet"href="desktop.css"media="screen and (min-width: 800px)">
Al hacer esto, mantienes el código organizado y permites que el navegador decida qué estilos cargar basándose en el tamaño del dispositivo. Aunque se descargan todos, el navegador prioriza los del tamaño actual y carga los otros después.
El enfoque del proyecto mostly fluid permite que tu sitio sea adaptable, reorientando elementos según el dispositivo, pero permaneciendo limitado para un control mayor del diseño. Continuar mejorando nuestras habilidades en desarrollo web asegura que los proyectos sean eficientes y agradables para los usuarios finales.
Está genial, ¿de dónde sacas las medidas para hacer los cálculos? Hay muchas cosas que no entiendo pero se ve muy chévere.
Hola! en este otro aporte hablo un poco de el tema de los cálculos:
https://platzi.com/comentario/1737420/
Si te queda alguna duda puedes consultarme.
Nos vemos en la conf 🤘🔥
Mi practica
En este caso después de 800px, el fondo de algunas secciones no completo el ancho de la pantalla, me imagino que debí usar una clase en un contenedor por aparte
Los diseños están increíbles. ¿Tu los hiciste?
Sii, gracias
Habiliten estas opciones en el navegador:
genio!
justo nesesitaba eso
Gracias
Les comparto el enlace de un curso para aprender a manejar la Chrome DevTools, el profe del curso tambien es el Jedi Diego :)
https://platzi.com/cursos/devtools/
Muchas gracias!! Lo estaba buscando.
Se ve increíble, pero es recomendado llegar con bases de JS no?
Aún me quedan cursos por ver. Aún asi muchas gracias por la recomendación! :)
Buen trabajo, felicitaciones ¿Cómo logras filmar los cambios? me gustaría saber. Gracias.
Excelente!!
Esto está súper.
genial, muy util.
Recuerden que con CTRL + K y CTRL + C se puede comentar cualquier código en VisualStudio.
Una regla completa a usar en los media querie pienso que es la siguiente:
only screen and(breakpoint)
Only: Evita cargar los media queries en navegadores que no los soporten.
Screen: Carga los media queries solo en pantallas (mobile, tablet y desktop).
Excelente aporte, muchas gracias 👌🏼.
Yo después de ver esta clase jajajajaja
sii!!
El patrón Mostly fluid consiste, principalmente, en una cuadrícula fluida. Por lo general, en las pantallas grandes o medianas se mantiene el mismo tamaño y simplemente se ajustan los márgenes en las más anchas.
En las pantallas más pequeñas, la cuadrícula fluida genera el reprocesamiento del contenido principal, mientras que las columnas se apilan verticalmente. Una de las mayores ventajas de este patrón es que, en general, solo se necesita un punto de interrupción entre las pantallas grandes y las pequeñas.
Thank you
El espacio que queda en blanco en el media querie de 600px es porque a .c1, .c2 y .c3 se les dio un width de 50% y a .c5 no se le dió ningún width, entonces este baja porque el valor que tiene en el archivo principal de estilos es de 100% y no puede ocupar ese espacio vacío con 100% de width.
Excelente aclaración!
Al principio si me había preguntado eso, se veía raro.
Después entendí que efectivamente era un espacio en blanco por que la c5 tenia un width de 100% y este no podía subir.
Muchas gracias por esa aclaración, quedé loco cuando ví eso, pero gracias a este aporte, ya quedé tranquilo 🙂.
Así de fácil es trabajar con Flexbox, y es que realmente Flexbox es muy fácil de manipular, y tal vez pienses que nada puede superar a Flexbox, pues, si que hay algo que puede superar a Flexbox, vaya que lo hay jaja, espero que se llegue a ver ese tema en este curso 👀
Una pistaaaa profe, una pistaaa porfa jajaj
Pista: Flex es unidimensional
¿Tú que crees que será el salto?
y los nuevos archivos .css de estilos que se crean se deben reiniciar las configuraciones por defecto agregando:
o con que el style.css lo lleve es suficiente? se lo debo poner a cada uno? yo se lo puse pero vi que el profe no,
¡Hola!, con que el archivo style.css lo tenga es suficiente porque este archivo siempre será cargado, por lo que esos estilos siempre serán leídos, si lo pusieras en otros archivos entonces a cada rato se estarían remplazando los mismos estilos, por eso basta con hacerlo solo una vez :D
Ahhhh muchas gracias! Si tiene todo el sentido no habia caido en cuenta, gracias!!
Nota: a mi No me aparecían las barras de meda queries (naranjas), para que te salgan le dan al menú a la derecha (los 3 puntitos) y están las opciones , se puede activar el_ pixel ratio_, para que aparezca el tipo de dispositivo, y los media queiries.
Espero les sirva, saludos.
Gracias
Una forma de ver tus proyectos en tiempo real (desktop, tablet y/o mobile) es usando la plataforma .
Solo tienes que copiar la url que te genera la plataforma y abrirlo en cualquier dispositivo. Además, puedes compartir tu proyecto con otras personas para colaborar o ayudarte en tu código.