Así vamos…
Introducción
¿Ya tomaste el Curso de Frontend Developer?
Buenas prácticas de CSS: reflexión y advertencias
Layout y componentes
Identifica las pantallas de tu proyecto
Sistema de diseño, assets y variables de CSS
Maquetación responsiva: pantallas de autenticación
Crear nueva contraseña: HTML
Crear nueva contraseña: CSS
Email enviado
Login
Crear y editar mi cuenta
Mi cuenta
Maquetación responsiva: vistas principales
Página de inicio: HTML
Página de inicio: CSS
Menú desktop
Menú mobile
Mi orden: HTML
Mi orden: CSS
Mis órdenes
Navbar: HTML
Navbar: CSS
Detalle de producto
Carrito de compras: HTML
Próximos pasos
Cómo continuar aprendiendo desarrollo frontend
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
Paga en 4 cuotas sin intereses
Termina en:
Estefany Aguilar
Estilizaremos el código HTML que realizamos para la sección “my order” con las opciones que nos brinda CSS para lograr que usuarios vean su pedido de esta manera:
Una orden de compra tiene una cantidad indefinida de artículos y por eso debemos implementar estilos de CSS que funcionen tanto para ventas menores como para ventas mayores de miles de artículos.
¿Qué debemos hacer para construir estas dos vistas? Sigue estos pasos:
.my-order {
width: 100%;
height: 100vh;
display: grid;
place-items: center;
}
La medida relativa vh, viewport height, define la altura del contenedor. En este caso le estamos diciendo que sea del total de la pantalla.
.title {
font-size: var(--lg);
margin-bottom: 40px;
}
.my-order-container {
display: grid;
grid-template-rows: auto 1fr auto;
width: 300px;
}
.my-order-content {
display: flex;
flex-direction: column;
}
.order {
display: grid;
grid-template-columns: auto 1fr;
gap: 16px;
align-items: center;
background-color: var(--text-input-field);
margin-bottom: 24px;
border-radius: 8px;
padding: 0 24px;
}
.order p:nth-child(1) {
display: flex;
flex-direction: column;
}
.order p span:nth-child(1) {
font-size: var(--md);
font-weight: bold;
}
.order p span:nth-child(2) {
font-size: var(--sm);
color: var(--very-light-pink);
}
.order p:nth-child(2) {
text-align: end;
font-weight: bold;
}
.shopping-cart {
display: grid;
grid-template-columns: auto 1fr auto auto;
gap: 16px;
margin-bottom: 24px;
align-items: center;
}
.shopping-cart figure {
margin: 0;
}
.shopping-cart figure img {
width: 70px;
height: 70px;
border-radius: 20px;
object-fit: cover;
}
.shopping-cart p:nth-child(2) {
color: var(--very-light-pink);
}
.shopping-cart p:nth-child(3) {
font-size: var(--md);
font-weight: bold;
}
A las imágenes le aplicamos la propiedad object-fit, ya que resuelve como el contenido se ajustará a su contendor.
Sus valores pueden ser:
¿Sabías que tener en claro estos conceptos te puede favorecer en una entrevista de trabajo?
Mira lo que te pueden preguntar acerca de HTML y CSS para el puesto de frontend developer.
Contribución creada por: Guadalupe Monge Barale
Aportes 222
Preguntas 27
Así vamos…
esta profesora se confunde cambia el html y lo hace tan rapido que cuesta seguir el paso
Que horrible el desorden para explicar
Siento que va sacando el maquetado del html como le viene a la mente, sin una planeación anterior, supongo que en un trabajo real suele pasar así, pero esto es un curso, debe estar ya diseñado, es medio molesto estar refactorizando el código a cada rato.
Yo opino que quienes se fijan mas en si la profesora utiliza “buenas practicas” o “no tiene todo hecho”, no estan aprovechando realmente la oportunidad de aprender, si bien en ocasiones es un poco confuso, no hay nada que con lo que hemos aprendido no podamos solucionar, he realizado todo el proyecto con archivos html y css por aparte y no he tenido ningun lio, animo a todos menos excusas y mas ganas de aprender 😃
HTML:
<body>
<div class="my-order">
<div class="my-order-container">
<h1 class="title">My order</h1>
<div class="my-order-content">
<div class="order">
<p>
<span>03.25.21</span>
<span>6 articles</span>
</p>
<p>$560.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/276517/pexels-photo-276517.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="bike">
</figure>
<p>Bike</p>
<p>$30,00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/276517/pexels-photo-276517.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="bike">
</figure>
<p>Bike</p>
<p>$30,00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/276517/pexels-photo-276517.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="bike">
</figure>
<p>Bike</p>
<p>$30,00</p>
</div>
</div>
</div>
</div>
</body>
Me está costando terminar este curso, hay demasiado desorden.
Veo muchos comentarios diciendo que así se maqueta en la industria y del mismo modo se estiliza, yo creo que no porque por alguna razón existen los Sistemas de diseños y las Arquitecturas, como BEM y SASS excelente compatibilidad entre ellas (son mis favoritas). No critico a la profesora, pero tampoco es la de mi mayor gusto, y tampoco juzgo a los estudiantes que presentan su inconformidad con el desorden, porque sí hay desorden, en la manera de trabajar en la profe, y eso dificulta el proceso de aprendizaje de los y las estudiantes, y más si es un novato. Al menos contamos con el gran repertorio de cursos que ofrece Platzi, y podemos prepararnos con esos para así continuar en nuestro aprendizaje. Sigamos adelante chicos y chicas, que la profesora no sea de nuestro agrado no significa que debamos desertar, dejemos eso de lado y continuemos con el proceso.
/*my order styles*/
.my-order {
width: 100%;
height: 100%;
display: grid;
place-items: center;
}
.my-order-container {
display: grid;
grid-template-rows: auto 1fr auto;
width: 300px;
}
.my-order-content {
display: flex;
flex-direction: column;
}
.order {
display: grid;
grid-template-columns: auto 1fr;
gap: 16px;
align-items: center;
background-color: var(--text-input-field);
margin-bottom: 24px;
border-radius: 8px;
padding: 0 24px;
}
.order p:nth-child(1) {
display: flex;
flex-direction: column;
}
.order p:nth-child(2) {
text-align: end;
font-weight: bold;
}
.order p span:nth-child(1) {
font-size: 14px;
font-weight: bold;
}
.order p span:nth-child(2) {
font-size: 12px;
color: var(--very-light-pink);
}
.title-order {
font-size: 16px;
margin-bottom: 40px;
}
.shopping-cart {
display: grid;
grid-template-columns: auto 1fr auto auto;
gap: 16px;
margin-bottom: 24px;
align-items: center;
}
.shopping-cart figure {
margin: 0;
}
.shopping-cart figure img {
width: 100px;
height: 100px;
border-radius: 20px;
object-fit: cover;
}
.shopping-cart p:nth-child(2) {
color: var(--very-light-pink);
}
.shopping-cart p:nth-child(3) {
font-size: 14px;
font-weight: bold;
}
Hasta la clase 14 llegue bien. pero desde aquí se ve muy desordenado la forma de maquetar, además de que va volando y me toca estar pausando la clase todo el tiempo. incluso hay líneas que me toca ponerme a buscar para que sirve cada propiedad porque simplemente del afán se me escapa para que sirve y eso que uso doble pantalla y el live server para ver los cambios inmediatamente. me parece que el curso debería extenderse mas ya que algunos necesitamos entender lo que hace cada propiedad y etiqueta en la marcha. sigo avanzando pero con dificultad.
En el minuto 11:28 otra forma de poner el texto debajo del otro con solo HTML es
<span>04.25.2021</span><br>
<span class=“order-text-article”>6 articles</span>
La magia está en la etiqueta de <br> que produce un salto de línea en el texto y se obtiene el mismo resultado de una manera más sencilla
Ahi vamos…
Compañeros, les recomiendo que antes de ver cómo lo hace la profe es bueno que lo intentemos hacer nosotros por nuestra cuenta. Eso vine haciendo desde hace unas clases y realmente se aprende mucho más. No importa si hacen un código desordenado, mientras más de estas prácticas hagan mejor les va a quedar.
La peor clase que he visto en este curso. Siento que Estefany va maquetando a como se le viene en mente (lo cual puede pasar en el mundo laboral, mas no en un curso donde lo menos que hay que hacer es enredar al estudiante). Igualmente, me parece una buena profe y hasta el momento he entendido, pero a duras penas.
Me encanta el uso constante de Grid. Lo usual es que siempre usen flexbox pues tiene mas tiempo pero el grid es un display realmente potente y el que lo usen tanto ayuda a verlo mpas familiar, perderle el miedo.
En buena onda.
Todos estamos aprendiendo inglés.
La expresión --font-weight – en ingles, se lee más o menos font uueigt
Esto es diferente a lo que se escucha en el video, pues se escucha algo así como font width.
Recomiendo que para entender mejor hagan primero el curso de grid , hay varios en la escuela web. este curso es mejor para practicar esos conceptos
Me sorprende los comentarios, el proyecto apenas crece un poco y la gente se confunde, existe el poner pausa, la velocidad de 0.75 y hasta inclusive, en la descripción, esta el link para conseguir el proyecto GitHub. (y)
Que tal campeon, buen dia…Como que cada vez mas, la Estefany, en sus explicaciones revuelve mucho y no llega a entender la gran parte de lo que hace en su codigo… Bueno imaginate fronten developer???
mas organizado, si se puede.
dejo mi aporte.
Todo bien, pude realizar con éxitos la clase, el problema es que es muy confuso, hace demasiados cambios como si fuera algo obvio pero sería genial si lo explicará más detalladamente.
Quise subir mi foto pero no se como :c
Lo siento mucho pero este curso no me gusto para nada en lo absoluto, el desorden y la velocidad con la explica me confunde todo completamente, es una lastima me estaban gustando los cursos.
Para los que igual que yo no conocía object-fit a continuación dejo link donde se explica a detalle y con que otros valores se puede utilizar. =>
https://developer.mozilla.org/es/docs/Web/CSS/object-fit
“My Order” lo menos que tiene es orden… 😦
Entiendo que así es la “vida real” pero ya manda, uno apenas esta iniciando a aprende y entre tanto borrar, copiar, pegar a lo loco de aquí allá, lo pierde a uno… Mi forma de aprender es ir viendo, lo dentengo y lo hago, pero que va, ando super perdida con lo que ella hace, así tan rápido y sin explicar bien… excelente profesora, pero deberían de tener más planificación!!! (sí lo llevo en 0.85x y apoyandome en GitHub)… es solo mi pensar y parecer, si los profes o adm ven estos comentarios los deberían de tomar en cuenta.
Cuando empece este curso me di cuenta que la profesora iba muy rápido. Entonces lo dejé pausado y seguí tomando otros cursos. Mes y medio regresé y más o menos le sigo el paso a la profesora y a entender porque agregaba y metía etiquetas, incluso a cuestionar si iba tal cosa, iba en tal lugar.
Si sienten que va muy rápido, pueden pausarlo y retomarlo después. Poderle seguir el paso a la profesora, mientras mi mente visualizaba los cambios que hacía, me hizo darme cuenta cuanto he eprendido y me motivo a seguir. No lo vean como un impedimento, sino como un reto un poco más avanzado. Porque de eso se trata… de avanzar.
Salu2 cali2.
Recomiendo mucho el curso del profe Diego de Granda en donde explica muy bien las buenas prácticas a tener en cuenta.
https://platzi.com/cursos/html-css/
Y luego en el siguiente curso se realiza un clon de Google como proyecto, también muy interesante
https://platzi.com/cursos/html-practico/
Dejo la imagen para quien la quiera utilizar
😃
Muy desordenado esta clase, entiendo que muchos dicen que el desorden siempre habra en un proyecto real, pero estamos en este curso para aprender css con tanto desorden no se puede aprender efectivamente
lol, menos mal que usar muschos div era una mala practica
esta clase la note muy desordenada pero igual me sirve
**INTENSA Y DESORDENADA: **
En esta clase la profe me mareó mucho porque modificaba constantemente el código HTML y los estilos en CSS. Fue una clase bastante intensa y un poco desordenada (a mi entender).
SOLUCIÓN: bajarle la velocidad de reproducción a 0.85 me ayudó mucho.
El resto de las clases hasta ahora son excelentes!!!
1.000 Gracias!
Creo que muchos no entienden el concepto de un **aporte ** ni lo que este en cuanto a contenido significa , compañero la verdad veo a muchos en lugar de aportar al curso con buenos comentarios o formas de mejorar solo se quejan… Porfavor la idea de este espacio es para ayudarnos no para hundir diciendo hay es que es muy desordenada…bla…bla…bla a ver entonces monten su codigo en esta cajita y veo como resolverian segun ustedes el “desorden” de la profesora…
Me gustaría compartir una de las formas que a mí me ha ayudado para poder tener mejor aprendizaje a lo largo de los cursos que he tomado
Me tomé la libertad de agregarle el botón de ir a pagar
Decidí poner los iconos a los lados
Pues así vamos
En este curso la profesora se equivoco una vez en el video anterior, que luego en este video lo volvió a arreglar y en el minuto 5:40 aproximadamente lo vuelve a dejar como estaba en el video anterior. La verdad es que es muy dificil seguir el curso así, si se equivoca tantas veces deberían editarlo y dejar el definitivo, o al menos en pdf el codigo final. El que se perdió como lo soluciona? Si bien se puede ver el video las veces que queramos, la profe luego no muestra como queda el html simplemente refresca la pagina y continua. Va a un ritmo dificil de seguir, ella ya lo sabe pero nos lo está enseñando, y de esta manera no se entiende nada. El curso venia perfecto, hasta que llego la parte de “mi orden”. Hasta parece que lo hace rapido para sacarselo de encima.
Todo el curso tuve que estar poniendo de nuevo, la explicación es muy rápida, no hay un porque de las cosas, si bien tuvimos un curso teórico anterior al practico, para alguien (como yo) que esta en 0 de programación, no entiende muy bien la diferencia de un “p” a un “a” y por que se usa mucho “div” si aun principio dijeron que no es bueno usarlo demasiado
Resumen de los comentarios:
“Ppipipipipi”
El mio. 😃
div.order + enter = <div class=“order”></div>
En mi opinión los “errores” de organización que algunas mencionan son útiles para poder entender como está estructurado el html y cual es la mejor forma de maquetarlo, pienso que esos cambios en el camino nos ayudan a entender mejor lo que estamos haciendo y no solo ir siguiendo el guión de lo que escribe Estefany.
Muy buena clase. Una demostración de que hay que planificar bien el html para no tener que modificarlo
Pues yo no lo hice exactamente igual que la profe porque me perdí entre tantos cambios que hizo al HTML, en la parte visual me quedo igual. Además yo estoy trabajando el CSS en un archivo separado y usando HTML semántico.
![](
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@300;500;700&family=Roboto:wght@700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="./styles/movile.css">
<link rel="stylesheet" href="./styles/desktop.css" media="screen and (min-width: 420px)">
<title>My order</title>
</head>
<body>
<main class="mainContent">
<div class="myOrderMainContainer">
<h1 class="title myOrderTitle">My order</h1>
<section class="myOrderMainContainer-content">
<p>
<span>10.01.2023</span>
<span>6 articles</span>
</p>
<p>
<span>$ 560.00</span>
</p>
</section>
<section class="myOrderMainContainer-shoppingCart">
<article>
<figure>
<img src="https://images.pexels.com/photos/1149601/pexels-photo-1149601.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" alt="Imagen de articulo">
<figcaption>Bike</figcaption>
</figure>
<p>
<span>$ 120.00</span>
</p>
</article>
<article>
<figure>
<img src="https://images.pexels.com/photos/1149601/pexels-photo-1149601.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" alt="Imagen de articulo">
<figcaption>Bike</figcaption>
</figure>
<p>
<span>$ 120.00</span>
</p>
</article>
<article>
<figure>
<img src="https://images.pexels.com/photos/1149601/pexels-photo-1149601.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" alt="Imagen de articulo">
<figcaption>Bike</figcaption>
</figure>
<p>
<span>$ 120.00</span>
</p>
</article>
<article>
<figure>
<img src="https://images.pexels.com/photos/1149601/pexels-photo-1149601.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" alt="Imagen de articulo">
<figcaption>Bike</figcaption>
</figure>
<p>
<span>$ 120.00</span>
</p>
</article>
<article>
<figure>
<img src="https://images.pexels.com/photos/1149601/pexels-photo-1149601.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" alt="Imagen de articulo">
<figcaption>Bike</figcaption>
</figure>
<p>
<span>$ 120.00</span>
</p>
</article>
</section>
</div>
</main>
</body>
</html>
CSS Mobil
:root{
--very-ligth-pink: #c7c7c7;
--text-imput-field: #F7F7F7;
--hospital-green: #ACD9B2;
--white: #FFFFFF;
--black: #000000;
--dark: #232830;
--font-small: 1.4rem;
--font-medium: 1.6rem;
--font-large: 1.8rem;
}
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
html{
font-size: 62.5%;
}
body{
font-family: 'Quicksand', sans-serif;
/*font-family: 'Roboto', sans-serif;*/
}
/*My order*/
.mainContent{
width: 100%;
height: 100vh;
display: grid;
place-items: center;
/*Con display: grid y place-items:center puedes centrar elementos en vertical y horizontal al mismo tiempo*/
}
.title{
font-size: var(--font-large);
margin-bottom: 1.2rem;
text-align: center;
}
.myOrderTitle{
margin-bottom: 4rem;
}
.myOrderMainContainer, .myOrderMainContainer-shoppingCart {
display: grid;
grid-template-rows: auto 1fr auto;
width: 28rem;
gap: 1.2rem;
}
.myOrderMainContainer-content{
display: flex;
justify-content: space-between;
padding: 1.6rem;
background-color: var(--text-imput-field);
border-radius: 0.8rem;
}
.myOrderMainContainer-content p:nth-child(1){
display: flex;
flex-direction: column;
}
.myOrderMainContainer-content p{
font-size: var(--font-medium);
font-weight: bold;
}
.myOrderMainContainer-content p:nth-child(1) span:last-child{
font-weight: lighter;
color: var(--very-ligth-pink);
font-size: var(--font-small);
}
.myOrderMainContainer-shoppingCart article{
display: flex;
justify-content: space-between;
margin-bottom: 1.2rem;
}
.myOrderMainContainer-shoppingCart article figure{
display: flex;
color: var(--very-ligth-pink);
font-size: var(--font-medium);
align-items: center;
}
.myOrderMainContainer-shoppingCart article p{
display: flex;
align-items: center;
font-size: var(--font-medium);
font-weight: bold;
}
.myOrderMainContainer-shoppingCart figure img{
width: 7rem;
height: 7rem;
object-fit: cover;
border-radius: 2rem;
margin-right: 1.6rem;
}
Desktop CSS
/*My order*/
.myOrderTitle{
margin-bottom: 4rem;
text-align: start;
}
.myOrderMainContainer, .myOrderMainContainer-shoppingCart {
width: 40rem;
gap: 1.2rem;
}
Buenas… No termino de entender porque en la clase .shopping-cart creamos un grid con 4 columnas (auto 1fr auto auto) cuando solo tenemos 3 contenidos dentro de la cart.
De hecho yo lo hice al grid solo con 3 columnas y lo veo mejor (auto 1fr auto).
.shopping-cart {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 16px;
}
Me fue más fácil usar flexbox para alinear los items que con CSS Grid, y también porque hasta el primer minuto el código de la profesora no me funcionaba a mí así que tuve que hacerlo diferente para lograr el mismo resultado.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@300;500;700&display=swap" rel="stylesheet">
<title>Yard Sale | My order</title>
<style>
:root {
--black: #000000;
--gray: #777777;
--white: #FFFFFF;
--sm: 12px;
--md: 16px;
--lg: 20px;
--very-light-pink: #C7C7C7;
--text-input-field: #F7F7F7;
--hospital-green: #ACD9B2;
}
body {
margin: 0;
font-family: 'Quicksand', sans-serif;
}
.main-container {
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
place-items: center;
}
.order-container {
width: 480px;
height: 120px;
}
.title {
font-size: var(--lg);
margin: 0 0 36px 0;
}
.order-info {
background: var(--text-input-field);
border-radius: 16px;
display: flex;
padding-left: 24px;
align-items: center;
}
span {
display: inline-block;
width: 100%;
text-align: center;
}
span:first-child {
display: flex;
flex-direction: column;
}
.date {
font-size: var(--lg);
font-weight: bold;
}
.quantity {
color: var(--very-light-pink);
}
.total {
width: 100%; /* sería lo mismo */
padding-right: 24px; /* que colocar */
text-align: right; /* padding-left: 55% */
font-size: var(--md);
font-weight: bold;
}
.carts-container {
margin-top: 24px;
}
.shopping-cart {
display: grid;
grid-template-columns: auto 1fr auto;
width: 480px;
height: 128px;
align-items: center;
}
.shopping-cart figure {
margin: 0;
}
.shopping-cart figure img {
width: 128px;
height: 128px;
object-fit: cover;
}
.product-info {
color: var(--very-light-pink);
padding-left: 16px;
}
.product-value {
padding-right: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="main-container">
<div class="order-container">
<h1 class="title">My order</h1>
<div class="order-info">
<p>
<span class="date">04.25.2021</span>
<span class="quantity">6 articles</span>
</p>
<p class="total">$ 560.00</p>
</div>
</div>
<div class="carts-container">
<div class="shopping-cart">
<figure>
<img src="https://www.ghost-bikes.com/fileadmin/_processed_/8/c/csm_ghost-bikes-Riot-Trail-essential-black-black-45_38d9fe71b8.png" alt="bike">
</figure>
<p class="product-info">Bike</p>
<p class="product-value">$ 120.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://www.ghost-bikes.com/fileadmin/_processed_/8/c/csm_ghost-bikes-Riot-Trail-essential-black-black-45_38d9fe71b8.png" alt="bike">
</figure>
<p class="product-info">Bike</p>
<p class="product-value">$ 120.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://www.ghost-bikes.com/fileadmin/_processed_/8/c/csm_ghost-bikes-Riot-Trail-essential-black-black-45_38d9fe71b8.png" alt="bike">
</figure>
<p class="product-info">Bike</p>
<p class="product-value">$ 120.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://www.ghost-bikes.com/fileadmin/_processed_/8/c/csm_ghost-bikes-Riot-Trail-essential-black-black-45_38d9fe71b8.png" alt="bike">
</figure>
<p class="product-info">Bike</p>
<p class="product-value">$ 120.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://www.ghost-bikes.com/fileadmin/_processed_/8/c/csm_ghost-bikes-Riot-Trail-essential-black-black-45_38d9fe71b8.png" alt="bike">
</figure>
<p class="product-info">Bike</p>
<p class="product-value">$ 120.00</p>
</div>
</div>
</div>
</body>
</html>
Esta clase me sirvió bastante, porque no me estaba saliendo tratando de seguir lo que Teff hacía.
Así que decidí hacer esta página por mi cuenta, pude practicar y como sí me salio puedo decir que sí he estado aprendiendo
Recuerden el consejo que la @teffcode siempre nos brinda, primero miren la clase sin codear, luego vuelvan a verla codeando o escriban el código lo mas que se acuerden sin ver y de ultimas vuelvan a practicarlo sin ver la clase,… Con eso si te pierdes, siempre puedes volver a la clase ver de nuevo y volver a intentarlo!
Asi me quedo, mi reto personal en esta clase fue hacer el HTML y el estilizado yo sola y luego compararlo con el de la profesora, no usamos lo mismo pero al final estoy contenta con mi resultado, lo comparto con todos, y seguimos aprendiendo.
No entiendo por qué muchos se quejan de que la profe va cambiando el código en media clase, así debe ser en el mundo real, nadie debe tener todo el codigo 100% claro desde el principio como para no modificarlo en medio camino.
Para los estilos de la clase order, los pude realizar tambien con flex de la siguiente manera :
.order{
background-color: var(--text-input-field);
border-radius: 10px;
display: flex;
justify-content: space-between;
padding: 0 10px;
margin-bottom: 24px;
}
Agregue otros productos 😄
Ahora si con esta clase llore, tengo dolor de espalda y de cabeza!!
Ya se que que en un trabajo real esto no es nada, y amo como enseña Esteff pero ahora si me hice bolas y lo hice varias veces y no me salio algo estoy haciendo mal.
Steff una gran maestra, va volando lo hace ver taaaan facil y una aquí apenas empezando! =,(
Fascinado con lo que va de este curso practico.
Increible clase!
Claro que me confundí al principio de la clase, pero lo ví varias veces antes que me quedara claro esa parte. Poder lograrlo, genial
No entendi nada de lo que hizo. El código es muy chico, no se entiende.
Creo que no es desorden de la profe, se siente que es con el propósito de enseñarnos como es el mundo real, soy titulado de una carrera donde me lo pintaron en orden y con buenas practicas y al llegar al campo de acción me frustre demasiado, puntos para la profe por ponernos todo en modo realista.
Que facil lo hace ver, no se porque me cuesta tanto :S Pero nunca parare de aprender 😄
CSS:
:root {
--white: #FFFFFF;
--black: #000000;
--very-light-pink: #C7C7C7;
--text-input-field: #F7F7F7;
--hospital-green: #ACD9B2;
--sm: 14px;
--md: 16px;
--lg: 18px;
}
body {
margin: 0;
font-family: 'Quicksand', sans-serif;
}
.my-order {
width: 100%;
height: 100vh;
display: grid;
place-items: center;
}
.title {
font-size: var(--lg);
margin-bottom: 40px;
}
.my-order-container {
display: grid;
grid-template-rows: auto 1fr auto;
width: 300px;
}
.my-order-content {
display: flex;
flex-direction: column;
}
.order {
display: grid;
grid-template-columns: auto 1fr;
gap: 16px;
align-items: center;
background-color: var(--text-input-field);
margin-bottom: 24px;
border-radius: 8px;
padding: 0 24px;
}
.order p:nth-child(1) {
display: flex;
flex-direction: column;
}
.order p span:nth-child(1) {
font-size: var(--md);
font-weight: bold;
}
.order p span:nth-child(2) {
font-size: var(--sm);
color: var(--very-light-pink);
}
.order p:nth-child(2) {
text-align: end;
font-weight: bold;
}
.shopping-cart {
display: grid;
grid-template-columns: auto 1fr auto auto;
gap: 16px;
margin-bottom: 24px;
align-items: center;
}
.shopping-cart figure {
margin: 0;
}
.shopping-cart figure img {
width: 70px;
height: 70px;
border-radius: 20px;
object-fit: cover;
}
.shopping-cart p:nth-child(2) {
color: var(--very-light-pink);
}
.shopping-cart p:nth-child(3) {
font-size: var(--md);
font-weight: bold;
}
Un consejo, algo que me sirvio a mi fue reforzar un poco las bases de CSS grid para continuar desde aquí, en mi caso no lo tenia muy claro y algunas cosas que mensionaba Estefany quedaban en el aire, pero ya que entiendo estas bases mejor puedo decir que entiendo a la perfección como avanza el curso!
Decidí hacerlo primero sin ver la clase
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@300;500;700&display=swap" rel="stylesheet">
<title>Document</title>
<style>
:root{
--white: #FFFFFF;
--black: #000000;
--dark: #232830;
--very-light-pink: #C7C7C7;
--text-input-field: #F7F7F7;
--hospital-green: #ACD9B2;
--sm: 14px;
--md: 16px;
--lg: 18px;
}
body{
margin: 0;
font-family: 'Quicksand', sans-serif;
display: flex;
justify-content: center;
}
.my-order{
width: 400px;
display: grid;
grid-template-columns: 1 400px;
grid-template-rows: auto;
gap: 20px;
padding-top: 20px;
}
.my-order-container{
background-color: var(--text-input-field);
border-radius: 10px;
}
.my-order-content{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20px 0 20px;
font-weight: bold;
font-size: var(--lg);
}
.my-order-content :last-child{
color: var(--dark);
}
.my-order-content :first-child :last-child{
display: flex;
flex-direction: column;
color: var(--very-light-pink);
font-size: var(--sm);
font-weight: lighter;
}
.shopping-cart{
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
font-weight: bold;
}
.shopping-cart :last-child{
color: var(--dark)
}
.shopping-cart figure{
margin: 0;
}
.shopping-cart img{
align-self: left;
width: 90px;
height: 90px;
border-radius: 10px;
object-fit: cover;
}
</style>
</head>
<body>
<div class="my-order">
<h1>My order</h1>
<div class="my-order-container">
<div class="my-order-content">
<p>
<span>04.25.21</span>
<span>6 articles</span>
</p>
<p>$560.00</p>
</div>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/3685523/pexels-photo-3685523.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/3670538/pexels-photo-3670538.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/7262453/pexels-photo-7262453.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/3685523/pexels-photo-3685523.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/3670538/pexels-photo-3670538.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
<div class="shopping-cart">
<figure>
<img src="https://images.pexels.com/photos/7262453/pexels-photo-7262453.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="bike">
</figure>
<p>Nombre del Producto</p>
<p>$300.00</p>
</div>
</div>
</body>
</html>
Me esta encantando como va quedando todo el proyecto. Espero al final logremos unir todas las pantallas o algo por el estilo 🙌🏻
🌐 Les comparto mi código subido a GitHub: https://github.com/iJCode1/frontend_practico_platzi
.
Vista Desktop:
.
Vista Móvil:
03.25.21
6 articles
$560.00
fecha
Total
# items
</section> <section > <menu class="orderDetail">amazing price $
la clase de shopping-cart la hice con display flex y space-between
Recomiendo poner esto siempre en nuestra hojas de estilos para no tener que colocar margin: 0, o cosas así para tener que resetear estilos:
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
Esto lo enseñan en el curso definitivo de HTML y CSS. Así se puede trabajar más cómodo ya que se reinician esos estilos por defecto de todos los elementos que a veces suelen ser molestos.
Lo realicé de esta manera, utlicé más flexbox que grid:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Quicksand:wght@300;500;700&display=swap"
rel="stylesheet"
/>
<title>Yard Sale</title>
<style>
:root {
--sm: 1.6rem;
--md: 1.8rem;
--lg: 2rem;
--very-light-pink: #c7c7c7;
--white: #ffffff;
--text-input-field: #f7f7f7;
--black: #000000;
--hospital-green: #acd9b2;
--dark: #232830;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 62.5%;
}
body {
font-family: "Quicksand", sans-serif;
}
.main-container {
display: grid;
justify-items: center;
width: 100%;
height: 100vh;
}
.my-order {
display: flex;
flex-direction: column;
padding: 16px;
width: inherit;
max-width: 600px;
}
.my-order__title {
display: none;
margin-bottom: 48px;
font-size: var(--lg);
}
.my-order__content {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
padding: 16px;
border-radius: 10px;
font-size: var(--sm);
font-weight: bold;
color: var(--black);
background-color: var(--text-input-field);
}
.my-order__info {
display: flex;
flex-direction: column;
}
.my-order__article-number,
.my-order__article-name {
font-size: 1.4rem;
font-weight: 400;
color: var(--very-light-pink);
}
.my-order__article {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
padding-right: 19px;
}
.my-order__article-img-container {
display: flex;
align-items: center;
gap: 16px;
}
.my-order__article-img {
width: 75px;
height: 75px;
border-radius: 20px;
object-fit: cover;
}
.my-order__article-name {
margin-right: 4px;
text-wrap: wrap;
}
.my-order__article-price {
font-size: var(--sm);
font-weight: bold;
text-wrap: nowrap;
}
@media (min-width: 640px) {
.main-container {
align-items: center;
}
.my-order {
margin-top: 92px;
}
.my-order__title {
display: block;
}
}
</style>
</head>
<body>
<main class="main-container">
<div class="my-order">
<h1 class="my-order__title">My order</h1>
<div class="my-order__content">
<p class="my-order__info">
08.01.2024
<span class="my-order__article-number">6 articles</span>
</p>
<p>$ 560.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/276517/pexels-photo-276517.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Bike</figcaption>
</figure>
<p class="my-order__article-price">$ 120.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/244553/pexels-photo-244553.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Tire</figcaption>
</figure>
<p class="my-order__article-price">$ 180.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/209235/pexels-photo-209235.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Hammer</figcaption>
</figure>
<p class="my-order__article-price">$ 20.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/210881/pexels-photo-210881.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Wrench</figcaption>
</figure>
<p class="my-order__article-price">$ 40.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/1866149/pexels-photo-1866149.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Furniture</figcaption>
</figure>
<p class="my-order__article-price">$ 220.00</p>
</div>
<div class="my-order__article">
<figure class="my-order__article-img-container">
<img
src="https://images.pexels.com/photos/39362/the-ball-stadion-football-the-pitch-39362.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
alt="A bike"
class="my-order__article-img"
/>
<figcaption class="my-order__article-name">Soccer ball</figcaption>
</figure>
<p class="my-order__article-price">$ 190.00</p>
</div>
</div>
</main>
</body>
</html>
Resultado:
Muchas gracias y éxitos con tu código. Agradezco cualquier feedback 💚.
o es que en el nth-child() se cuentan todos los items dentro del div, como en este caso, que antes de los 2 \
hay un \
03.25.23
6 articles$560.00
Camara Vintage
$30,00
Turntable Vintage
$60,00
Phone Vintage
$30,00
Camara Vintage
$30,00
Las explicaciones de TefCode son increíbles c:
Es sumamente satisfactorio ver como va quedando tal como en figma ✨
.
Interesante esta parte 16
Me gustarÏa más el curso si lo hiciera ya premeditado y editado, no me gusta así en vivo, siento que se equivoca mucho y deseo que todo sea perfecto, haganlo porque estamos pagando
Otra solucion a la seccion de .order puede ser:
.order {
padding: 8px;
display: flex;
background-color: var(--text-input-field);
border-radius: 8px;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.order :nth-child(1) {
display: flex;
flex-direction: column;
}
.order :nth-child(2) {
font-weight: bold;
color: var(--dark);
}
.order p span:nth-child(1) {
font-size: var(--md);
font-weight: bold;
}
.order p span:nth-child(2) {
font-size: var(--sm);
color: var(--very-light-pink);
}
Gente recuerden que si el profesor se equivoca (que a ver se pueden equivocar tambien son humanos), lo ideal es tratar de buscar el error nosotros y asi aprender tambien a detectar errores en nuestro codigo, y no copiar al 100% el codigo dado en clase, ya que si no se practica no tiene ciencia. Seamos criticos constructivos. Feliz aprendizaje.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?