Estilización de Cartas con CSS y Responsive Design
Resumen
Ahora estilizaremos las cards que forman la página de inicio implementando CSS Grid. La o el usuario verá estilos diferentes según el dispositivo desde el que se conecte y aquí podrás identificar sus diferencias.
Así es la visualización en desde un computador.
Este es el diseño para móviles
Cómo implementar CSS Grid para centrar varias imágenes
Trabajaremos en el contenedor principal, cuya clase es cards-container. Con display:grid creamos las grillas y luego las columnas con grid-template-columns y usamos la función repeat para que repita nuestro fragmento de código.
Con auto-fill nos aseguramos que la grilla ocupe el 100% del espacio disponible. Después generamos un espacio entre los items con gap. Finalmente, alineamos horizontal y verticalmente empleando place-content.
Queremos que las tarjetas de la página de inicio muestren el precio del artículo y debajo el nombre de este con un tamaño de fuente y color diferentes.
Al lado de ambos debe estar el ícono del carrito de compras.
🟢 => Aquí es donde podemos sacar provecho de las Variables CSS al almacenar el tamaño fijo de las cards en su contenedor padre, utilizarla en cada propiedad donde se requiera y solo cambiar el valor de esta variable en Responsive.
Muy buen dato, gracias
Excelente aporte compañero!!!. Lograste que se requirieran usar menos lineas de código.
Realizado!! Lo hice para mi futura venta de bonsai!!
;data =Array.from(data);data.forEach(e=>{ e.addEventListener("click", changeShoppingStatus);});functionchangeShoppingStatus(){console.log(this);let removedText =this.querySelector(".card__image-container .center-text");let iconImage =this.querySelector(".card__additional img"); imageSrc = iconImage.getAttribute("src");console.log(removedText);console.log(imageSrc);if(imageSrc !=="./images/bt_added_to_cart.svg"){ iconImage.setAttribute("src","./images/bt_added_to_cart.svg"); removedText.classList.add("hidden");}else{ iconImage.setAttribute("src","./images/bt_add_to_cart.svg"); removedText.classList.remove("hidden");}}
te quedo muy bonito
Te quedo muy bien
me gusto como quedo :3
Genial!!
quedo muy bonito !
Tip de VS Code!
Para no tener que borrar todo el código y luego volver a pegar, como hizo la profe en el minuto 7:20, existe otra solución...
Presionar Control + F
** Desplegar buscador**
Copiar y pegar códigos
Reemplazar
++PD: Se reemplaza todo el código que sea igual en TODO EL ARCHIVO.++
Gracias por hacer un mini tutorial, es de mucha ayuda! :)
muchas gracias !
**Mis apuntes **
A lo mejor te sirven :D
Nota: Con Flexbox se realiza la separación y organización de los precios nombres y logos de los productos
auto-fill: Para este ejercicio llena de columnas suficientes, es decir adecuara las columnas necesarias, ya que se manejaran en varios dispositivos acompañado de un tamaño el cual será de 240px por tarjeta.
object-fit: cover; Al tener la imagen contraída, esta propiedad sirve para tener la imagen con un tamaño tal cual es sin importar su width y height que hemos puesto, es decir no se modificara.
gap: Propiedad que permite separar u obtener un espacio entre cada imagen de los productos
place-content: center; Alinear todo el grid, es decir permite alinear nuestra container “principal” respecto a la pantalla
Ya voy a empezar a vender mis productos
Buena esa!!!. Por orden en la web y experiencia de usuario sería bueno que estandarizaras el tamaño de las imágenes. No necesariamente cuadradas como las de la profe, pero si dos o tres tamaños en cierto orden.
El es precio es un riñon jajaja
No dudo que la profesora tenga un buen conocimiento sobre desarrollo frontend, sin embargo, tiene muy malas prácticas.
Quiero pensar que es porque este es un curso muy básico, y como se mencionó, se reutilizará este código en otro curso "avanzado", pero creo que es mejor aplicar buenas prácticas desde niveles básicos para ir acostumbrando a los estudiantes.
¿Qué malas prácticas son esas?
Si. normalmente en buenas prácticas de programación aplica el DRY, pero en html y css no se puede crear un menú de varios items así. Pero siento que la profesora se enredó un mucho al empezar a copiar un elemento y repetirlo 15 veces a la mitad de la clase. Apenas ella hizo eso ya sentía que iba a ser un problema arreglar el html luego, era preferible primero trabajar 1 solo item, terminarlo, y luego empezar a copiarlos.
Buen día
Tengo una duda.
Manejo VS CODE y en el apartado (auto-fill, 240px)
Especialmente el auto-fill no me coge como código
¿será algún complemente de VS code?
O algo estoy realizando mal
comparto apartado del código.
Podrías compartir una captura de lo que te muestra? A lo mejor tienes una extensión que interfiere con eso.
no es que no me muestra nada.
Solo el parámetro o el auto-fill se nota que solo coge el auto pero no el fill
y al momento de ver en el proyecto no realiza ninguna cambio.
Os recomiendo usar la extensión de Visual Studio Code llamada LIVE SERVER , lo que hace es que cada vez que le deis a guardar código ( ctrl + s ) refresca la pagina abierta y así veis las modificaciones en directo :D
Recuerden! Deben abrirlo con live server, sino no les funciona!
Este es el resultado del proyecto con las herramientas que aprendimos en la Escuela de Desarrollo Web.
Les dejo el repositorio para que vean la disposición de los archivos y el codigo.
Repo: Yard Sale
Pug
no se puede trabajar con flex solamente o solo usamos grid por facilidad
Hola @alex-mendez982
CSS Grid es mejor para la construcción general de nuestra página, ya que es más fácil modelar nuestra plantilla, y se pueden crear diseños más asimétricos y peculiares. CSS Grid en diseños con filas y columnas. Flexbox es mejor alineando el contenido dentro de los diferentes elementos de la web.
Flex es mas para arreglar cositas pequeñas, los detalles como dice la profe
Este es un ejemplo agregue una pseudo-clase aprendida en el curso anterior haciendo el efecto que cuando el cursor este en la imagen se expanda un poca mas y genere un box shadow también con el icono de agregar al carrito
quedo muy bonito !
:)
Que talentooo 😁👌
quedo muy bonito !
Estoy demasiado confundido, trato de aplicar todo pero siento que se hizo un desorden innecesario, tener en el mismo archivo el html y el style me está matando, el grid-template-columns simplemente no funciona, tengo todo en una sola columna y el @media tampoco hace efecto. Al haber hecho 15 copias, luego borrarlas y luego volver a realizar las 15 copias debí haber dañado algo en el código.
Tampoco me sirve el grid template column, encontraste solucion?
Literalmente adelantándome agregando margins que no surtían efecto y ¡chus! un gap de 26px.
Necesito la clase de grid :v
Una forma de evitar tener que quitar el margen a cada elemento que necesitemos podemos simplemente quitarle los márgenes a todos los elementos que lo traen por defecto y así tener un mejor flujo de trabajo.