El diseño responsivo (Responsive Design)consiste en un conjunto de herramientas para que tu sitio se vea bien en varias medidas de pantalla, esto incluye imágenes, tipografía, internacionalización de la página y entre otros.
En la actualidad, la mayoría de sitios web son visitados desde un celular, por lo que asegurarse que nuestro sitio sea responsivo para cualquier dispositivo es fundamental para optimizar las ganancias.
Qué son las media queries
Las media queries son reglas CSS que establecen un comportamiento distinto o diferentes estilos en un cierto rango de la pantalla. Esto sirve para establecer el layout del sitio web para diferentes tipos de pantalla: escritorio, tablets y celulares.
Estos son dos tipos de media querie :
max-width / max-height: establece un rango máximo para cierto comportamiento.
min-width / min-height: establece un rango mínimo para cierto comportamiento.
Estos valores son parecidos a condicionales, mientras se cumpla la condición, aplica determinados estilos.
Estructura de la media querie
La estructura de una media querie consiste en empezar con @media, seguido del tipo de la media querie estableciendo un rango, envolviendo las reglas CSS dentro de ese rango.
@media (max-width:750px){
div {
color: red;
}
p {
background-color: red;
}
}
Herramientas del desarrollador para media queries
Para observar que los cambios se estén aplicando correctamente, las herramientas de desarrollador serán de gran ayuda.
Abre las herramientas del navegador y da clic en la opción “Toggle device tool”, aquí podrás manipular la pantalla y observar en cuántos píxeles está ocurriendo determinados estilos.
Utiliza el siguiente ejemplo para visualizar cómo cambian los estilos según la longitud de la pantalla. Puedes revisar la media querie que está en el código. Aunque solo cambien el color de dos elementos, puede estar cualquier propiedad que desees, prueba con todo.
Es para que nuestro proyecto web pueda ser multiplataforma, que se pueda ver bien en un smartphone, desde una tablet, iPad y que se vean excelente desde una laptop o computadora de escritorio.
Esto realizándolo siempre con buenas prácticas.
Para empezar debemos saber:
Media Queries
Con los media queries podemos jugar con el layout, cuando la pantalla del dispositivo sea pequeña el contenido se ve de una forma, pero si está pantalla crece el contenido también lo hace sin perjudicar el diseño.
Podemos cambiar la orientación de los contenedores, podemos cambiar su orden, incluso cambiar las dimensiones.
Breakpoint
Son la dimensión en el viewport, es decir el width y el height de la pantalla, en donde vamos a generar un cambio.
Este cambio es la forma en la que puedo reposicionar ciertos elementos o redimensionar ciertos contenedores, todo esto para que se vea bien la web app y sin importar el dispositivo en el que se abra.
min-width
Esto quiere decir que cuando la pantalla sea igual o más grande que el valor que coloquemos, el código que esté adentro del media querie se va a ejecutar.
Pero si la pantalla es mayor a ese min-width habrá otro media querie que aplicará estilos diferentes.
max-width
Esto quiere decir que cuando la pantalla sea igual o más pequeña que el valor que coloquemos, el código que esté adentro del media querie se va a ejecutar.
La mejor forma de aplicar media queries
Tiene de nombre Mobile First o Mobile Only.
Esto quiere decir que el proyecto ya debe estar diseñado para dispositivos mobile, ya no debemos preocuparnos por que se vea bien desde una laptop o computadora de escritorio.
El diseño del proyecto va a partir desde un dispositivo mobile y desde ahí va a ir creciendo a los demás dispositivos con mayor pantalla.
Si hacemos lo contrario de ir de una pantalla grande a una más pequeña, esto se llama solamente responsive design y no es lo que estamos buscando.
Aplicado directo desde CSS con media queries
Arriba de los media queries vamos a tener el código base, que es el que está hecho y optimizado para dispositivos mobile.
Vamos a generar un breakpoint para realizar ciertos cambios en dispositivos más grandes.
Vamos a generar otro breakpoint que va a ser para una tablet o para computadoras con un viewport más pequeño como ser netbooks
Luego vamos a generar otro breakpoint que será para computadoras de escritorio, desktop o dispositivos con pantallas más grandes.
Orden para aplicar los media queries
Partimos desde los dispositivos más pequeños y terminamos con los dispositivos más grandes.
Si lo hacemos de forma inversa tendremos problemas, ya que como CSS funciona en cascada, nunca se van a aplicar los estilos de los medias queries con un viewport más grande.
Empezamos por:
Los celulares o dispositivos mobile.
Las tablets.
Laptops o computadores de escritorio.
Aplicado directo desde HTML (la mejor practica)
Este método se utiliza, ya que dependiendo del dispositivo donde esté el usuario va a necesitar un archivo CSS u otro, esto es para evitar que carguen archivos que el usuario no va a necesitar ni usar.
Lo agregamos en el head, aquí en vez de ligar un archivo de CSS vamos a ligar más de uno, dependiendo de los dispositivos en los que queramos aplicar los estilos.
Estilos enfocados a mobile
<linkrel="stylesheet"href="style.css">
Si tenemos archivos CSS que van a impactar en otros dispositivos con diferente viewport
<linkrel="stylesheet"href="tablet.css"media="screen and (min-width: 768px)"><linkrel="stylesheet"href="desktop.css"media="screen and (min-width: 1024px)">
Agregamos el atributo media cuyo valores va a ser el mínimo que necesitamos para hacer ese breakpoint, que es ese cambio en el layout.
Orden final
<linkrel="stylesheet"href="style.css"><!-- Los dispositiivos mobiles --><linkrel="stylesheet"href="tablet.css"media="screen and (min-width: 768px)"><linkrel="stylesheet"href="desktop.css"media="screen and (min-width: 1024px)">
En el curso de Responsive Design: Maquetación Mobile First con Diego De Granda, muestra otra forma de realizar el uso de media por medio de link:
Ejemplo
esto porque se puede realizar con la metodología de MobileFirst un CSS que sea exclusivo para mobile (que seria el core de los estilos) y pequeños CSS que modifiquen las adaptaciones de los distintos dispositivos.
Una práctica muy recomendada en RESPONSIVE WEB DESIGN es tener en documentos separados los estilos para cada dispositivo y primero que todo seguir el patrón de diseño mobile first, diseñando la página primero para dispositivos móviles se vuelve mucho más fácil adaptar el diseño para tablets y computadoras.
Responsive Design
Es una manera de que nuestra página web se vea bien en todas las medidas de dispositivos.
.
Para eso se utilizan los media queries, que nos ayudará a decir que cuando nuestra pantalla llegue a un cierto tamaño, podeamos cambiar los estilos.
tal vez no lo notaron, pero el uso de Flex o grid, en combinación ayuda muchísimo al responsiva ayudándonos a optimizar código y hacer menos líneas, también usando medidas relativas. Por ejemplo, (y me adelanto un poquito) me gusta trabajar con bootstrap, todas, o la mayoria, de sus clases son responsivas, el sistema de columnas es sencillo de implementar y los elementos o cajas se acomodarán de maravilla, y poco, o nada, usaríamos las medias qyerys, salvo que sea algo ya tan especfico y que no haya otra manera de resolverla.
Dios! Qué bueno que existe este curso, una vez intenté hacer uno mucho más avanzado y creo que fue mucha info para procesar, me frustré y lo dejé, pero con todas las clases de este curso estoy comprendiendo todo aquello que alguna vez me hizo llorar. Gracias 😉
chicos salio una nueva sintaxis ojala lo puedan ver y es que ahora se pueden usar los operadores mayor y menor para usar las medias queries dejo pantallaso saludos chicos
![](https://static.platzi.com/media/user_upload/image-ca67a146-13eb-4286-8540-8bebc49c64f4.jpg)
Es un conjunto de herramientas o técnicas que usamos para que nuestras páginas web se vean bien en cualquier dispositivo.
¿Por qué es importante que nuestras páginas web tengan responsive design?
Porque hoy en día la mayoría de usuarios acceden a las páginas web por medio de dispositivos móviles.
¿Qué son los media queries?
Son unas reglas que establecemos en CSS, las cuales nos permiten asignar estilos que solo se aplicarán cuando el tamaño de la pantalla sea el que indicamos en dicha regla.
¿Cuales son los tipos de media queries que existen?
Max-width / max-height.
Min-width / min-height.
¿Para qué nos sirven los media queries max-width / max-height?
Para establecer un máximo de tamaño de una pantalla para que los estilos se apliquen, es decir, los estilos se aplicarán hasta el tamaño que escribamos.
¿Para qué nos sirven los media quieries min-width / min-height?
Para establecer un mínimo de tamaño de una pantalla para que los estilos se apliquen, es decir, los estilos se aplicarán desde el tamaño que escribamos.
Sintaxis de un media quieries:
@media (max-width: 300px)
{
div
{
background-color: rebeccapurple;
}
}
Hoy en día podemos usar también los operadores de comparación (No en todos los navegadores del mercado es compatible, pero si con los más populares) Info Aquí les comparto mis ejemplo:
Aunque la gran mayoría de las web sean accedidas desde dispositivos mobiles, no siempre es una constante, deben conocer muy bien a su usuario final para tomar la decisión entre mobile first o desktop first, lo digo es porque he tenido la experiencia donde desarrollamos sistemas de información exclusivamente para usuarios de oficina donde empezar por mobile first solo agregaría un costo de tiempo y esfuerzo al proyecto y puede que ni siquiera hayan diseños para estos tamaños.
Antes se utilizaba display: table, luego aparecieron los medias query donde podríamos estableces estilos en ciertos tamaños, pero esto tambien puede ser engorroso o hasta nos puede confundir. Ahora con grid layout puedes crear maravillas con una sola línea de código. Acá puedes aprender CSS Grid
Responsive design:
Se puede inspeccionar con click derecho y en el icono que parece un teléfono te muestra como se ve la pagina en un teléfono igual se puede cambiar a un modelo especifico
La regla @media en CSS se utiliza para aplicar estilos específicos a diferentes dispositivos o condiciones de visualización, como el tamaño de la ventana gráfica (viewport), la resolución, la orientación, entre otros. Esto permite crear diseños responsivos que se adaptan a diversas pantallas y dispositivos.
Características y Beneficios de @media
Diseño Responsivo:
Permite ajustar el diseño y la presentación de una página web para diferentes tamaños de pantalla y dispositivos, mejorando la experiencia del usuario en teléfonos móviles, tabletas, y computadoras de escritorio.
Condiciones de Media Queries:
Puedes especificar condiciones como el ancho o alto de la ventana gráfica, la resolución, la orientación (vertical u horizontal), y más.
Flexibilidad y Control:
Ofrece un control preciso sobre qué estilos aplicar bajo ciertas condiciones, facilitando la creación de diseños adaptativos.
Sintaxis Básica de @media
css
Copiar código
@media (condiciones) {
/\* Estilos específicos para las condiciones \*/
}
Ejemplo Básico
Adaptando el Diseño para Diferentes Tamaños de Pantalla
html
Copiar código
\
\<html lang="es">
\<head>
\<meta charset="UTF-8">
\<meta name="viewport" content="width=device-width, initial-scale=1.0">
\<title>Ejemplo de Media Queries\</title>
\<style>
body {
font-family: Arial, sans-serif;
}
.container {
width: 100%;
padding: 20px;
background-color: lightblue;
}
/\* Estilos para pantallas mayores a 600px \*/
@media (min-width: 600px) {
.container {
background-color: lightgreen;
}
}
/\* Estilos para pantallas menores a 600px \*/
@media (max-width: 599px) {
.container {
background-color: lightcoral;
}
}
\</style>
\</head>
\<body>
\
Este contenedor cambia de color según el tamaño de la pantalla.
\
\</body>
\</html>
Explicación del Ejemplo
Estilos Generales:
Se definen estilos generales para la página y el contenedor .container.
Media Query para Pantallas Mayores a 600px:
@media (min-width: 600px) { ... }: Aplica estilos cuando el ancho de la pantalla es de al menos 600 píxeles. En este caso, el color de fondo del contenedor se cambia a lightgreen.
Media Query para Pantallas Menores a 600px:
@media (max-width: 599px) { ... }: Aplica estilos cuando el ancho de la pantalla es menor a 600 píxeles. Aquí, el color de fondo del contenedor se cambia a lightcoral.
Usos Comunes de @media
Diseño Adaptativo:
Cambiar el diseño de la página para adaptarse a diferentes tamaños de pantalla.
Ejemplo: Ajustar el diseño de una columna a varias columnas en pantallas más grandes.
Optimización de Imágenes:
Cargar imágenes de diferentes resoluciones según el dispositivo.
Orientación de Dispositivos:
Aplicar estilos específicos para dispositivos en orientación vertical (portrait) u horizontal (landscape).
Ejemplo de Media Queries Avanzados
Cambiar el Diseño Según la Orientación
css
Copiar código
/\* Estilos para dispositivos en orientación vertical \*/
@media (orientation: portrait) {
.container {
background-color: lightblue;
}
}
/\* Estilos para dispositivos en orientación horizontal \*/
@media (orientation: landscape) {
.container {
background-color: lightgoldenrodyellow;
}
}
Resumen
@media: Permite aplicar estilos específicos bajo ciertas condiciones.
Diseño Responsivo: Facilita la creación de páginas web adaptativas y optimizadas para diferentes dispositivos.
Flexibilidad: Ofrece un control preciso sobre el estilo en función del tamaño de pantalla, orientación, resolución, y otras condiciones.
El uso de @media es esencial para desarrollar sitios web modernos y responsivos que proporcionen una excelente experiencia de usuario en una amplia variedad de dispositivos y tamaños de pantalla.
En el minuto 3:38 uno puede llegar a confundirse, creo que la profe no guardo el cambio, pero al menos copiando el codigo y modificandolo, las medidas funcionan en el pixelaje exacto, solo un pequeño aporte por si alguien en el futuro nota el detalle ;)
Si, definitivamente en la práctica profesional, el mobile firts te quita bastantes dolores de cabeza, rediseñar algo de grande a pequeño no es imposible pero si trae bastantes complicaciones, no es imposible, pero creo que es mucho mas sencillo empezar de pequeño a grande!
Que tu sitio se vea bien en varias medidas de pantalla
Los media queries te permiten establecer reglas de estilo que
se aplicarán solo si se cumple cierta condición, como un ancho
de pantalla especifico.
@media (max-whidth: 375px){
.clase- que quiero que cambie{
propiedad: valor;
}}
Dos tipos de media queries:
*max-width / max-height : Establece un rango máximo para cierto
comportamiento
*min-width / min-height : Establece un rango mínimo para cierto
comportamiento
Ejemplo:
/* Estilos para pantallas grandes */body
{
font-size: 16px;
}
/* Media query para pantallas más pequeñas */@media (max-width: 768px) {
body
{
font-size: 14px;
}
}
Es un enfoque de diseño web que busca que los sitios web se vean y funcionen bien en una variedad de dispositivos y resoluciones, como celulares, tabletas y computadoras de escritorio
¿Qué son los media queries en CSS?
Son reglas en CSS que permiten aplicar estilos diferentes según las características del dispositivo, como su ancho de pantalla
¿Qué significan los términos “min-width” y “max-width” en media queries?
“min-width” se refiere a un valor mínimo de ancho de pantalla desde el cual se aplican los estilos definidos, mientras que “max-width” se refiere a un valor máximo de ancho de pantalla hasta el cual se aplican los estilos definidos
¿Cómo se utiliza un media query para aplicar estilos en pantallas con un ancho mínimo de 300 píxeles?
Se utiliza así: @media (min-width: 300px) { … }, donde los estilos dentro de las llaves se aplicarán a pantallas con un ancho mínimo de 300 píxeles
¿Cómo se utiliza un media query para aplicar estilos en pantallas con un ancho máximo de 300 píxeles?
Se utiliza así: @media (max-width: 300px) { … }, donde los estilos dentro de las llaves se aplicarán a pantallas con un ancho máximo de 300 píxeles
¿Para qué puedes usar los media queries en un sitio web?
Los media queries permiten cambiar propiedades como colores, tamaños de fuente, márgenes, etc., para adaptar el diseño a diferentes tamaños de pantalla
¿Cómo se puede optimizar un diseño responsivo para diferentes dispositivos?
Se pueden utilizar unidades de medida relativas como porcentajes y REM, así como media queries para adaptar los estilos a diferentes resoluciones y tamaños de pantalla
El diseño responsivo (Responsive Design) consiste en un conjunto de herramientas para que tu sitio se vea bien en varias medidas de pantalla, esto incluye imágenes, tipografía, internacionalización de la página y entre otros.
div {
background: green;
}
/*
Aquí el @media permite definir un estilo
mediante una condición, si el tamaño es
mínimo de 300px el background es rojo y
si es más bajo de 300px, en el código
de arriba se definio el background como
verde
*/@media (min-width: 301px) {
div {
background: red;
}
}
En lo personal, creo que es mejor ajustar el_ responsive design_ una vez se haya concluido con la página pensando de grande a pequeños (Desktop a mobile).
Break points frecuentes:
320px — 480px: Mobile devices
481px — 768px: iPads, Tablets
769px — 1024px: Small screens, laptops
1025px — 1200px: Desktops, large screens
1201px and more — Extra large screens, TV
El responsive design nos permite adaptar nuestros sitios web y su respuesta ante ciertas medidas que se puedan llegar a tener. Para esto se utiliza @media, dentro de este, vamos a poner por así decirlo, las condiciones de que sucederá si la pantalla tiene cierto valor máximo o mínimo.
Se debe tener en cuenta que lo que se tenga por fuera del media query va a ser global, y va a estar por debajo de esa medida.
El diseño web responsive es un enfoque que se centra en el entorno del usuario dentro de un sitio web. El entorno del usuario dependerá del dispositivo que tenga conectado a internet. Existen múltiples características de un dispositivo que brindan oportunidades para hacer un enfoque centrado en el usuario.
Diseño responsivo: Adecuar la maquetación de nuestra web para que sea fácil y agradable navegar en la misma, sin importar el tamaño de la pantalla o el dispositivo del cual la visitan
Usamos max-width para decir aplica este código hasta que la pantalla tenga este tamaño, es decir, mida maximo esto; y min-width cuando mida minimo el valor indicado.
<!-- Media Queries: Diseño responsivo --><divclass="media_query">
Texto responsivo
</div>
Css:
/*Media Queries: Permiten cambiar los estilos de acuerdo a la resolución de pantalla*/.media_query{ /* Valores globales por encima de 601px*/background: red;
}
@media (max-width: 300px) { /* Valores por debajo (o hasta) 300px*/.media_query{
background: yellow;
}
}
@media (min-width: 301px) and (max-width: 600px){ /* Valores entre 301px y 600px */.media_query{
background: blue;
}
}
/*Nota: max-width: Valores por debajo de ...
min-width: Valores por delante de ... */
<!DOCTYPE html><htmllang="es"><head><metacharset="UTF-8"><metaname="Description"content="Extended Description"><metaname="robots"content="index,follow"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><title>Diseño Responsivo</title><style>div {
background-color: purple;
}
/* Breakpoint 300px, en este caso de 300px en adelante *//* El min se lee `desde` y max `hasta` */@media (min-width: 300px) {
div {
background-color: red;
}
}
/* Desde 600px hasta 800px */@media (min-width: 600px) and (max-width: 800px) {
div {
background-color: blue;
}
}
</style></head><body><div>
Platzi
</div></body></html><!-- https://developer.mozilla.org/es/docs/Web/CSS/Media_Queries/Using_media_queries -->
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?