No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
21 Hrs
54 Min
1 Seg

Aplicando media queries

29/32
Recursos

En esta parte necesitamos realizar un análisis de lo que hemos trabajado para identificar en qué partes y en qué dimensiones debemos cambiar la posición de ciertos objetos. Entonces vamos a la vista que nos arroja el navegador.

Analizando nuestro proyecto

Como ya sabes, debemos tener un mínimo de diseños para tres versiones: celular, tablet y escritorio. Es decir, tres archivos CSS linkeados en nuestro archivo index.html. Los colocamos en el siguiente orden:

  1. Hoja de estilos principales (styles.css)
  2. Hoja de estilos para tablet (tablet.css)
  3. Hoja de estilos para desktop (desktop.css)

Como puedes ver, se agregan de menor a mayor tamaño, porque estamos trabajando desde Mobile First. En este caso hay pocos elementos en nuestro proyecto, por lo que agregar una vista más nos bastará para obtener buenos resultados.

    <link rel="stylesheet" href="./styles.css">
    <link rel="stylesheet" href="./css/tablet.css" media="(min-width: 930px)">

Es importante que especifiquemos en la propiedad media, el ancho mínimo que necesita tener la pantalla para descargar este archivo. De esta manera evitaremos que el usuario tenga que descargar todos los archivos cuando solo va a usar uno.

Ahora vamos a trabajar en las secciones que necesitan unos cuantos ajustes.

Ajustando la sección de tablas

Al pasar a pantallas más grandes se genera demasiado espacio alrededor de las tablas. Colocarlas una al lado de otra ayuda a tener menos scroll vertical y una vista más cómoda para el usuario.

Para ello:

  • Llamamos la clase del contenedor de las tablas con .main-tables-container.
  • Usamos display: flex para que las tablas se acomoden juntas.
  • Ajustamos el ancho a 930px para que no crezca más de eso.
  • Centramos las tablas con margin: 0 auto.
.main-tables-container {
    display: flex;
    width: 930px;
    margin: 0 auto;
}

Ajustando la sección de beneficios

Tenemos el mismo problema que el anterior. Hay demasiado espacio sobrante en el que debemos reacomodar los elementos.

Para ello:

  • Llamamos la clase contenedora de las tarjetas con .product-cards–container.
  • Las acomodamos al ancho de la caja con display: flex.
  • Acomodamos las cajas en columnas con flex-wrap: wrap.
  • Limitamos el crecimiento de la caja en 930px. Así nos aseguramos que no se vayan a crear más de dos columnas.
  • Centramos las tablas con margin: 0 auto.
.product-cards--container {
    display: flex;
    flex-wrap: wrap;
    width: 930px;
    margin: 0 auto;
}

Ajustando la sección de planes

Como podemos observar, las tarjetas de planes se quedan a la izquierda de la pantalla al superar dimensiones de 930px. Esto se debe a que usa display: flex para funcionar.

Por lo que sin cambiarlo, agregamos una simple línea de código a la clase del mismo contenedor:

  • Centra el contenido con justify-content: center.
.plans-container--slider {
    justify-content: center;
}

Esta parte resultó mucho más sencillo, ¿verdad? Aplicamos muy pocas líneas de CSS y nos tomó poco tiempo saber qué elementos necesitaban ser reacomodados. Esto es porque estamos trabajando desde Mobile First.

Muchas veces es más fácil diseñar desde lo pequeño y luego ir creciendo según la necesidad de la pantalla que hacerlo al revés.

Ya sólo nos queda evaluar la página que hemos creado para comprobar temas de accesibilidad y buenas prácticas. ¡Genial!

Contribución creada por: José Miguel Veintimilla (Platzi Contributor).

Aportes 135

Preguntas 49

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cuando inicié como frontend, una de las cosas que me rompía la cabeza era: ¿Qué breakpoints utilizo?

Antes los desarrolladores seleccionaban las dimensiones de los dispositivos más populares del momento y establecían esas dimensiones como sus breakpoints, sin embargo, hace unos años comenzó una mejor práctica que es capaz de resumirse en una bella frase de Scott Yale: “En lugar de utilizar breakpoints predefinidos, debemos ser capaces de encontrar nuestros propios breakpoints utilizando nuestro contenido como guía”.

Para complementar el lo aprendido en el curso, les comparto dos links, compañeros, el primero es un artículo sobre los distintos tipos de breakpoints que existen en el diseño web moderno. Y el segundo es un video que muestra cómo se utilizan los minor-breakpoints:

Termine el curso en PlatziDay

Pensé que no lo lograría.
La verdad si bien he aprendido mucho en los primeros cursos de la escuela de desarrollo web…
No me sentía capaz de hacer este proyecto cuando lo anunciaron.
y wow he llegado al final.
No me queda mas que decir gracias. Gracias Platzi, Gracias Diego, Gracias compañeros de la comunidad que siempre estar ahí para responder y ayudar.

Les dejo los links para que se puedan apoyar si así lo requieren.
Repositorio de GitHub
Web Online

Si le quieren dar un efecto parallax a su imagen en desktop, pueden usar la propiedad background-attachment: fixed en la imagen de background

.main-image-container {
    background: url(./assets/img/bitcoinbaby4x.jpg) no-repeat center/cover;
    background-attachment: fixed;

Aqui pueden ver el resultado.

  • Pueden aplicarlo desde mobile si gustan.

Para los que les sale un scroll cuando están en modo desktop
solo tienen que hacer lo siguiente

.plans-container--slider{
    overflow-x: unset;
}

Aquellos que tuvieron inconvenientes aplicando el flex product-card–container
porque usaron la misma clase para todas las demás tarjeta, le dejo lo que hice para resolverlo, simplemente metí, todas las tarjetas en una seccion y le asigne una clase y a esa clase si le aplique el estilo en tablet.
![](

Alternativa con grid para las cards

Algo que estaba esperando es REM en las Media Queries. Creo que a medida que la pantalla sea más grande las letras también deben aumentar de tamaño. Lo acomode solo con modificar esta linea en tablet.css

html{
    font-size: 80%;
}

Antes:

Despues:

Pd. Gracias Diego por mostrarnos REM

Otra manera de colocar las dos tablas:

.main-currency-table, .main-commission-table {
    display: inline-block;
    width: 49%;
}

Para eliminar el _scroll _ del slider, ya que queda bastante mal desde una pantalla grande que se vea una barra de scroll que encima no hace nada jajaja.

.plans-container__slider {
    justify-content: center;
    overflow-x: hidden;
}

SI no les funciona es porque el contenedor al que le están aplicando los estilos de tablet no es el contenedor padre de solo esas cajas, recomiendo colocar un nuevo section que abarque solos las 4 cajas.

7 Habits of Highly Effective Media Queries

  • Let content determine breakpoints.
  • Treat layout as an enhancement.
  • Use major and minor breakpoints.
  • Use relative units.
  • Go beyond width.
  • Use media queries for conditional loading.
  • Don’t go overboard.

✅ Con los media queries y unos fix más esta terminado (demo en CodePen y repositorio en GitHub)

.
Tomo su tiempo, 20h 😯… me gusto mucho hacer los retos, era difícil pero divertido (el gráfico lo saque usando la extensión Wakatime de VS Code)

Quiero compartir mi resultado:
Repositorio de Github: https://github.com/santigo171/Batatabit
Página en GIthub Pages: https://santigo171.github.io/Batatabit/

Una foto de una parte donde lo hice diferente:

Cambios adicionales: se le puede cambiar el size de las fuentes ya que en una pantalla mas grande las letras quedan pequeñas.

Les recomiendo usar, overflow-x: initial; para que se quite la barra de scroll en la pantalla despues de 930px.

Otra manera de colocar las dos tablas:

.main-currency-table, .main-commission-table {
    display: inline-block;
    width: 49%;
}

Para eliminar el scroll del slider, ya que queda bastante mal desde una pantalla grande que se vea una barra de scroll que encima no hace nada jajaja.

.plans-container__slider {
    justify-content: center;
    overflow-x: hidden;
}

Para las versiones de escritorio añadí el siguiente CSS a cada tarjeta de los planes para que tenga un efecto llamativo al pasar el cursor por encima de cada una:

.plans-detail__card:hover {
    box-shadow: 0px 4px 8px rgba(26, 25, 25, 0.5);
    transform: scale(1.05);
    transition: all 0.5s ease;
}

Mis tablas no estan centradas. Aprentemente la tabla de currency tiene mas margen que la de comisiones aunque las dos esten en margin: 0 auto. Que puedo hacer? ¿alguna propiedad para intentar arreglarlo?

Así me quedo, aún soy nuevo en esto pero mas adelante meteré animaciones y CSS grid en ves de tablas de HTML. Por el momento este es mi resultado.!
https://gerard-strock.github.io/Batatabit-1.0/#plans

Les dejo mi solucion para el scroll de las tablas

Mi resultado para el scroll aplicado en la secicón de las tablas:

scrolll de monedas / comisiones

Otra forma de hacer tus media queries en el mismo archivo Style.css

@media screen and (min-width: 740px){
    .plans__slider{
        justify-content: center;
        overflow-x: hidden;
    }
}

@media screen and (min-width: 900px){
    .card__container{
        display:flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
    }
}

OJO, al separar los archivos css y ponerle un breakpoint a la etiqueta link, no hacemos que “solo se cargue el archivo necesario”. Se cargan todos los archivos css, pero el navegador da preferencia al archivo correspondiente al tamaño del navegador en ese momento. De esta manera, por ejemplo, si estamos en un celular cargaría primero los archivos para mobile, dandoles preferencia, asi nuestra página web estará lista más rapido que si cargara todos los archivos css a la vez.

Muy buen curso.

Entre 930 y 940 me aparece un scroll horizontal y un ligero margen blanco, por más que reviso no sé por donde pueden ir los tiros, o por donde meterlo mano.

Un saludo y gracias.

Que tal champion buen dia, fantastico curso… Gracias equipo Platzi.
… Saludos.





Hice mi mayor esfuerzo y aqui mi resultado.

Dejo por aquí mi proyecto:
bitcoin-site

Queremos que el navegador cargue justo en el break point que nosotros estamos buscando

<link rel="stylesheet" href="./css/tablet.css" media="(min-widht: 930px)" />```

Reto terminado, ahora como reto personal será realizarlo por mi propia cuenta.

https://edgardoavs.github.io/Batabit/

  • Desktop view
  • Mobile view

Yo realice algunos cambios en la versión de escritorio (tablet) para que se viera un poco mejor (según a mi criterio), Lo primero fue hacer mas larga la cabecera, siento que estaba muy pequeña en Escritorio también aumentar el tamaño del logotipo y re posicionar el botón del CTA
.

.
Lo segundo fue hacer un poco mas pequeñas las tarjetas para que no se vieran tan anchadas
.

.
Les comparto mi código de tablet.css

header {
    height: 534px;
}

header img {
    width: 350px;
    height: 44px;
}

.header--title-container {
    margin-top: auto;
}

.header--title-container .header--button  {
   margin-top: 250px;
}


.main-tables-container {
    display: flex;
    width: 930px;
    margin: 0 auto;
}

.product-cards--container {
    display: flex;
    flex-wrap: wrap;
    width: 930px;
    margin: auto;
}

.plans-container--slider {
    justify-content: center;
}

.plans-container--card {
    max-width: 200px;
    margin: 50px 40px 0;
}

Si alguien se pregunta como fue que oculte el scrollbar sin afectar su funcionamiento fue creando un pseudoelemento

  .plans-container--slider {
      display: flex;
      height: 316px;
      overflow-x:scroll;
      overscroll-behavior-x: contain;
      scroll-snap-type: x proximity;
  }
  /*Ocultamos la visibilidad del scrool*/
  .plans-container--slider::-webkit-scrollbar {
      display: none;
  }
![](https://static.platzi.com/media/user_upload/screencapture-127-0-0-1-5501-2024-02-29-17_41_43-6e8a09e6-9db9-4595-a064-010bcf32c4aa.jpg)

asi quedo aplicado el scrol

Me ha encantado este curso, he aprendido cosas muy buenas y prácticas. Gracias Diego sos un gran profesor!

Aquí les dejo mi diseño, en tamaño para pantallas grandes y para dispositivo móvil…

Antes de comenzar el responsive design me imaginaba un sheet completo con media queries para generar las vistas de los diferentes dispositivos! Despues del curso he aclarado completamente como generar una vista de cualquier dispositivo de la forma correcta. 😃

Para los que deseen, en el mismo diseño de Figma están definidos algunos breakpoints, cambiando tanto el tamaño de los elementos como la disposición de los mismos. Les dejo el Link:
https://www.figma.com/file/sMmlQaZldfDcLERYYWe6h4/Bata-Bit?node-id=363%3A210

Buenas practicas:
Empezar el proyecto pensando en mobile luego ir creciendolo hasta desktop.

cada clase de Diego aprendo algo nuevo, y algo muy profesional. Saludos.

Me gusta mucho el curso.Quiero aprender mucho,es la meta.

Siempre he maquetado primero la versión desktop primero y luego aplicando media queries la versión Mobile. Varias veces hacer la versión Mobile me resulto un dolor de cabeza. La verdad que esta técnica se ve buena, voy a implementarla en mis futuros proyectos.

increible curso enserio a mi siempre me ha costado el mobile first pero esta vez lo entendi perfecto

Vaya!! Muy práctico. Antes tenás que cambiar muchas cosas (mi caso), y terminabas odiando (por momentos), las “Media Queries”.

Joder, qué cosa linda el CSS!
Así vamos:
https://donnyvasquez.github.io/cursoMobileFirts/

Así quedo hasta el momento:

Le agregué el siguiente código para mejorar el footer;

footer .left ul{
    display: flex;
    flex-wrap: wrap;
    padding: 5px;
    width: 930px;
    justify-content: center;
}
.left a{
    margin: 10px;
  }

Bueno, aqui estan en las 3 pantallas… No pude hacer lo de las flechitas de los sliders, T_T. Me deprimi. Bueno a seguir estudiando.

Me encanto este curso, después de hacer el definitivo de CSS y HTML hacer este me ayudo a practicar y a aprender mucho mas, muchas gracias.
así se ve en laptop:

Muy feliz de llegar a este punto

Si quieren ocultar la scrollbar cuando pasan a tablet o laptop de la sección de planes, pueden usar:

.plans-container--slider::-webkit-scrollbar {
  display: none;
}

Lo agregan en tablet.css para que solo se oculte cuando estén en un dispositivo de ese tamaño.

Hola una pregunta ¿Saben por que no puedo hacer esta parte en dos columnas?

Puedes aqui cambiar la imagen por una de mejor calidad ya que se expande. y dejar lad e menor calidad en mobiles mas peque;os

<code>
.bitcoin-img-container {
    background-image: url('../imgs/bitcoinbaby2.jpg');
}

Estoy super contenta con los resultados. Buenísimo el curso!

Para los que les dio errro PRODUCT-CARDS--CONTAINER por que replicaron el codigo de arriba, solo es meter los articulos dentro de *.product-cards--container* ![](https://static.platzi.com/media/user_upload/image-10549fb5-6feb-4508-8725-49c1ea7a6531.jpg)

Genial!

b
a
no me funciona el media query
Clase 29: En esta parte necesitamos realizar un análisis de lo que hemos trabajado para identificar en qué partes y en qué dimensiones debemos cambiar la posición de ciertos objetos. Entonces vamos a la vista que nos arroja el navegador. ## Analizando nuestro proyecto Como ya sabes, debemos tener un mínimo de diseños para tres versiones: celular, tablet y escritorio. Es decir, tres archivos CSS linkeados en nuestro archivo index.html. Los colocamos en el siguiente orden: 1. Hoja de estilos principales (styles.css) 2. Hoja de estilos para tablet (tablet.css) 3. Hoja de estilos para desktop (desktop.css) Como puedes ver, se agregan de menor a mayor tamaño, porque estamos trabajando desde Mobile First. En este caso hay pocos elementos en nuestro proyecto, por lo que agregar una vista más nos bastará para obtener buenos resultados. ` <link rel="stylesheet" href="./styles.css">` ` <link rel="stylesheet" href="./css/tablet.css" media="(min-width: 930px)">` Es importante que especifiquemos en la propiedad ***media***, el ancho mínimo que necesita tener la pantalla para descargar este archivo. De esta manera evitaremos que el usuario tenga que descargar todos los archivos cuando solo va a usar uno. Ahora vamos a trabajar en las secciones que necesitan unos cuantos ajustes. ## Ajustando la sección de tablas Al pasar a pantallas más grandes se genera demasiado espacio alrededor de las tablas. Colocarlas una al lado de otra ayuda a tener menos scroll vertical y una vista más cómoda para el usuario. Para ello: * Llamamos la clase del contenedor de las tablas con ***.main-tables-container***. * Usamos ***display: flex*** para que las tablas se acomoden juntas. * Ajustamos el ancho a ***930px*** para que no crezca más de eso. * Centramos las tablas con ***margin: 0 auto***. `.main-tables-container` { ` display`: flex; ` width: 930px`; ` margin: 0` auto; } ## Ajustando la sección de beneficios Tenemos el mismo problema que el anterior. Hay demasiado espacio sobrante en el que debemos reacomodar los elementos. Para ello: * Llamamos la clase contenedora de las tarjetas con ***.product-cards–container***. * Las acomodamos al ancho de la caja con ***display: flex***. * Acomodamos las cajas en columnas con ***flex-wrap: wrap***. * Limitamos el crecimiento de la caja en ***930px***. Así nos aseguramos que no se vayan a crear más de dos columnas. * Centramos las tablas con ***margin: 0 auto***. `.product-cards--container` { ` display`: flex; ` flex-wrap`: wrap; ` width: 930px`; ` margin: 0` auto; } ## Ajustando la sección de planes Como podemos observar, las tarjetas de planes se quedan a la izquierda de la pantalla al superar dimensiones de 930px. Esto se debe a que usa display: flex para funcionar. Por lo que sin cambiarlo, agregamos una simple línea de código a la clase del mismo contenedor: * Centra el contenido con ***justify-content: center***. `.plans-container--slider` { ` justify-content`: center; } Esta parte resultó mucho más sencillo, ¿verdad? Aplicamos muy pocas líneas de CSS y nos tomó poco tiempo saber qué elementos necesitaban ser reacomodados. Esto es porque estamos trabajando desde Mobile First. Muchas veces es más fácil diseñar desde lo pequeño y luego ir creciendo según la necesidad de la pantalla que hacerlo al revés. Ya sólo nos queda evaluar la página que hemos creado para comprobar temas de accesibilidad y buenas prácticas. ¡Genial!

Para el que tenga problemas aplicando el segundo archivo para resolución de tablets, necesitan usar el atributo “screen and min-width”

    <link rel="stylesheet" href="./css/tablet.css" media="screen and (min-width: 930px)" />

Hola! No se explica cómo se inserta el “hipervínculo” entre el botón “conoce nuestros planes” y la parte de las tarjetas donde se muestran los planes. Entonces, lo explico:

En el botón, debemos agresar el href así:

<a href="#plans" class="header--button">Conoce nuestros planes <span></span> </a>

y ANTES de la sección: <section class=“main-plans-container”>

Se colocaría:

<a name="plans" id="plans"></a> 

Para los que les sale un scroll en desktop pongan la opcion de **auto **donde configuran el slider

despues de 2 años vuelvo a tomar este curso y esta de 10! bien por platzi!!!

yo añadiría

.product-detail–card {
width: 50%;
}

en vez del width: 930px …

Me gusta lo que estamos haciendo

me salio

Sentía que no progresaba muy bien en frontend. Volví a tomar el curso de HTML y CSS nuevamente para fortalecer los conceptos. En este curso apliqué el paradigma de CSS atómico y enfocado en utilidades y me di cuenta que si empezamos con mobile first, al momento de hacer los estilos responsive, toma muchas menos líneas. Solo cuando se desarrolla desde mobile, el CSS es inmenso, aún así es gratificante saber que logré usar este enfoque en un curso donde ni si quiera se lo aplica, pero aún asi, sigue sirviendo el curso.

tremendo las normas para crear mediaqueries 😄
Quedo genial

yo le agregue esto al tablet.css para que los elementos del footer queden mas centrados, me parece que queda mejor.

footer {
  justify-content: center;
}

footer section {
  width: 30%;
}

Muy buen curso y logre llegar al resultado final sin necesitas de break points.

Un punto interesante para la discusión sería el hecho de utilizar media queries directamente en el archivo inicial, sin agregar otra etiqueta link en el <head>. Puede que el "peso" adicional de esas líneas sea despreciable e incluso el overhead de la conexión http adicional que tiene que hacer el navegador para descargar un nuevo archivo sea mayor. Dependiendo de la situación puede llegar a ser contraproducente, también sería importante decidir en función del dispositivo mayoritario que utilizan los visitantes para consumir el website (algo que puede conocerse con el tiempo mirando, por ejemplo, Google Analytics o similares).

Así quedó la web para desktop y tablets

¿Quieres adaptar el contenido de tu proyecto a pantallas más grandes?

¿Quieres obtener el siguiente resultado para el scroll de las tablas en pantallas más grandes?

¿Quieres obtener el siguiente resultado para el scroll de las tablas?

Mi aporte a la clase, actualice sin cambiar de lugar phone.css a dentro de la carpeta y tuve una sorpresa al ver la página en su esqueleto.
Tomaré la casualidad de páginas futuras, borrar el link de css temporalmente, solo para observar el HTML.

Hlola, el justify content no es necesario ponerlo en los media queries, puedes ponerlo en el archivo normal , si el contenedor no es lo suficientemente grande creara el scroll horizontal y si lo es lo centrara:)

Para la gente que tiene problemas con los estilos en modo tablet en la secion de monedas yo lo resolvi poniendo las dos card en un div con una clase luego en table.css hice los respectivos estilos

.card-cont {
  display: flex;
  width: 930px;
  margin: 0 auto;
  justify-content: center;
  gap: 200px;
}

Muy interesante el media en el link de enlace de css a tablet, no conocia este atributo. Siempre creemos sabernoslas todas y en ests cursos aprendemos cosas nuevas.

Les comparto mi resultado.
Batatabit

resultado media query con justify content

Súper emocionado con todo lo aprendido durante el curso y lo bien explicado por parte de Diego de la temática y partes tratadas. Muchas gracias a Platzi.

Vista Mobile

Vista adaptada

si agregan: scroll-behavior: smooth; en la etiqueta html (raiz) el call to action se desliza hacia abajo mas suavemente

Eliminar elementos y barra de scroll

.plans-container__slider{
    overflow-x: hidden; /*Elimina la barra de scroll*/
}
.plans-container__card a{
    display: none; /*Elimina el elemento a*/
}

Antes

Después

.main-tables--container

.products-cards--container

.product-card--container

.plans-container--slider

tablet.css

Al final me quedo asi con los media querys implementados

Tuve que aplicar de esta manera:

.plans-container--slider {
    justify-content: center;
    width: 930px;
    margin: 0 auto;
}

Porque si dejaba solamente justify-content: center; no se centraba, asi que le agregue el width y el margin.

yo ese reto de las primeras dos tarjetas lo hice desde las primeras clases jajaja me mate la cabeza pensando en como hacerlo y hasta apenas lo dejo xd

Alguien sabe como se puede hacer para esconder las flechas con mediaqueries