Juan Vásquez
Sebastian Cifuentes
Yes, thank you
david cardoso
hola juan , gracias por el aporte te ahorras un montón de tiempo Me quedo una duda y si tenes que agregarle un contenido diferente por ejemplo un imagen , no se puede hacer no este atajo?
El diseño de la tabla tienen una apariencia bastante similar a la original. Nos faltan algunos detalles como redondear las esquinas, colores al texto y los íconos. Tienes razón.
Entonces, ¡agreguemos esos estilos!
Cómo agregar bordes de la tabla
¿Recuerdas que creamos clases específicas para los botones situados en las esquinas? Pues es momento de llamarlos.
.currency-table--container .table__top-left { border-radius: 15px 0 0 0; } .currency-table--container .table__top-right { border-radius: 0 15px 0 0; } .currency-table--container .table__bottom-left { border-radius: 0 0 0 15px; } .currency-table--container .table__bottom-right { border-radius: 0 0 15px 0; }
Cómo aplicar texto de precios
.currency-table--container .table__right { font-size: 1.4rem; font-weight: normal; line-height: 1.7rem; color: #757575; }
Cómo agregar íconos
Observando el diseño, nos damos cuenta que hay dos tipos de flechas: hacia arriba y abajo. Entonces tenemos que dividir y aplicar a las etiquetas span estas dos clases: up y down.
.currency-table--container .down { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url(""./assets/icons/trending-down.svg""); background-size: cover; background-position: center; background-repeat: no-repeat; } .currency-table--container .up { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url(""./assets/icons/trending-up.svg""); background-size: cover; background-position: center; background-repeat: no-repeat; }
Este sería nuestro resultado en pantalla:
Genial, ¿no? Ahora solo falta que apliques lo mismo a la otra tabla que falta. Recuerda que no hay una sola manera de lograrlo, sino tantas como programadores hay. Lo importante es que lo intentes. Verás que es muy sencillo.
Contribución creada por: José Miguel Veintimilla (Platzi Contributor).
Juan Vásquez
Sebastian Cifuentes
Yes, thank you
david cardoso
hola juan , gracias por el aporte te ahorras un montón de tiempo Me quedo una duda y si tenes que agregarle un contenido diferente por ejemplo un imagen , no se puede hacer no este atajo?
Yosef Enmanuel Blandin Rios
Sebastian Cifuentes
Escuche en una conferencia que una buena estrategia no es salir de la zona de confort, si no hacerla mas grande. Es decir sentirse cómodo en lo incomodo.
Julián Ramírez
No se puede hacer más grande desde adentro Sebastián, la idea es salir de ella para que como dices cada vez se haga más grande. No sé si el gráfico está del todo bien ya que si está bien salir de lo que conocemos pero sin llegar a la zona de pánico como se muestra en este gráfico:
Ixchel Garcia
Terminado el reto!!
Victor Andres Castillo Zambrano
quedo genial
Federico Ivan Llano
Genial, gracias me faltaba ese pequeño detalle del vertical-align middle
Jairo Jair Jasón Pozo Pérez
Yancarlos Ramirez Torres
Esto es justamente lo que estaba buscando, alguien que hubiera puesto las 2 tablas de esta forma, no sabia que eso ya era con JS, pense que era alguna etiqueta de HTML, igual con tu codigo me ha quedado claro, muchas gracias
Santiago Ramirez
No sirve el link a tu repo? quiero ver como haces el Js
Danke !!
Vanessa Rázuri Ruiz
Yo tratando de ver si los bordes se redondearon o no
Jair Daniel Lozada Mariño
:) puedes poner otro color para ver mejor
Francis González
yo jajajja puse el background del main en naranja mientras hacia los bordes, y asi no sufrir tanto .
Para el border-radius pueden usar:
.currency-table__container table { width: 100%; border-radius: 16px; overflow: hidden; /* Esto es importante */ }
Para los estilos de los primeros td pueden usar la pseudoclase :first-of-type
.currency-table__container td:first-of-type { font-size: 1.4rem; font-weight: normal; line-height: 1.7rem; color: #757575; }
Así ya no tendrían que colocar las clases en los td
Cristian Mauricio Cavanzo Arias
José Luis Díaz Santos
Muy efectivo ;)
Rafael Martínez Rodríguez
Muchas gracias.
Oscar Teodoro Ortiz
Una pequeña alternativa a "border-radius":
Enzo Ivan Valdez
Aldo César Rico Mejía
Quizás algunos de los estudiantes que lleguen a esta clase les sirva esto.
Al momento de realizar el bordeado de la tabla no alcanzas a ver los bordes por los colores o por tu pantalla te recomiendo:
Rafael Martínez Rodríguez
Pensé que había sido el único y también hice lo mismo de cambiarle el color a la table mientras aplicaba los bordes porque no podía visualizar si se estaba realizando el cambio o no
Nestor Rios Garcia
Sí, siempre es muy útil.
Julieta Gallego
Victor Andres Castillo Zambrano
buenisimo
Josue Islas Morales
GEORGIE WLADIMIR DUARTE CADENAS
si yo no fuera usado un span con background, sino una <img/> estaria mal? que beneficio trae usar un span con background?
Andres Velasquez
Yo inicialmente lo hice con img, y luego lo cambíe a spam. Según veo la semantica de span se aplica hacia los iconos y img hacia las imagenes como tal.
matias bravo
Se siente tan bien cuando comienzas a entender el 'por que' de cada linea de codigo. dejas de copiar y actuar por analogia y empiezas a aplicar la logica.
Para quienes estan recien comenzando... ANIMO! En un comienzo es frustrante, es dificil. Pero poco a poco iras entendiendo cada linea; y si no paras de aprender, dominaras todo lo que te propongas
Duarte Rosa
Reto completado wuujuu
Julian Felipe Andrade
No entiendo como identifican los bordes de la tabla blanca con fondo blanco, yo lo veo todo blanco, me pueden ayudar?
Rafael Alejandro Santos Trujillo
Podrías ser un poco más específico con tu pregunta?
José Antonio Rodríguez Navarro
En caso de que ambos sean blancos y apenas puedas notar la diferencia usa otro color para el borde o revisa en las dev tools del navegador que se esté aplicando.
Evelyn Hernandez Riquelme
Yo si pude darle border a la tabla completa.
.currency-tables--container table{ width: 100%; height: 100%; background: var(--white); border-radius: 8px; }
Christopher Andrés Guano Valencia
Excelente!
Lexaviere Feliz Lopez
Por que debemos poner un inline block para que los iconos puedan aparecer ?
Axel Yaguana
Team PlatziHola. Es por las propiedades display en sí. Cada una tiene diferentes y según aquellas puedes mostrar tus elementos.
Te recomiendo esta lectura para que veas cómo puedes usar los display a tu favor.
Luis Lira
La propiedad de inline-block lo que hace es que muestras los elementos en forma de bloque y respeta las propiedades que pongas de width y height
Roberto Andrés Valenzuela Araya
Yo se que no es un gran logro copiar algo que ya esta escrito, pero entender al 100% todo que se esta leyendo y replicarlo en otro trabajo es un buen logro.
Jesús Enrique Sotelo García
¡Listo!
Código CSS
.currency-table-container .down { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-down.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; } .currency-table-container .up { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-up.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; }
Gente, no se olviden que la otra tabla la pueden hacer simplemente poniendole una coma a los estilos de la primera tabla y agregando las clases de la tabla de la izquierda Por ejemplo, yo simplemente le cambié en las clases de la primera tabla lo que decía "currency" por "commission". Y todo me salió muy bien. Prácticamente se reescribieron los estilos solo dos veces, si no me equivoco.
Mi CSS se ve así
.main-currency-table, .main-commission-table{ width: 70%; min-width: 235px; max-width: 500px; height: 360px; margin: 0 auto; font-family: "Inter", sans-serif; } .main-currency-table .currency-table--title, .main-commission-table .commission-table--title{ margin-bottom: 15px; font-size: 1.8rem; font-weight: bold; line-height: 2.3rem; color: var(--bitcoin-orange); } .main-commission-table .commission-table--title{ color: var(--secondary-blue); } .currency-table--container, .commission-table--container{ width: 90%; min-width: 230px; max-width: 300px; height: 250px; margin: 0 auto; } .currency-table--container table, .commission-table--container table{ width: 100%; height: 100%; } .currency-table--container td, .commission-table--container td{ width: 50%; font-size: 1.6rem; font-weight: 500; line-height: 1.9rem; color: var(--grey); background-color: var(--just-white); } .currency-table--container .table__top-left, .commission-table--container .table__top-left{ border-radius: 15px 0 0 0; } .currency-table--container .table__top-right, .commission-table--container .table__top-right{ border-radius: 0 15px 0 0; } .currency-table--container .table__bottom-left, .commission-table--container .table__bottom-left{ border-radius: 0 0 0 15px; } .currency-table--container .table__bottom-right, .commission-table--container .table__bottom-right{ border-radius: 0 0 15px 0; } .currency-table--container .table__right, .commission-table--container .table__right { font-size: 1.4rem; font-weight: normal; line-height: 1.7rem; color: #757575; } .currency-table--container .down, .currency-table--container .up { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-down.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; } .currency-table--container .up{ background-image: url('./assets/icons/trending-up.svg'); }
Fue bastante fácil solo hay que cambiarle el color y el contenido, pueden ver lo que realice con mas detalle en mi repo: https://github.com/JairoPozo/Proyecto_Bit
Intente desafiarme e incluí un código JS para realizar el cambio de pantalla
Para esto tuve que incluir dos div con un background de las flechas (_ El div va en la tabla correspondiente, flecha derecha para las comisiones y la izquierda para las monedas_)
<div class="container-arrow" id="arrow-right"></div>
<div class="container-arrow--left" id="arrow-left"></div>
y las posicioné con absolute
.container-arrow{ height: 10px; width: 12px; background-image: url("../assets/icons/right-arrow.svg"); background-repeat: no-repeat; background-size: contain; background-position: center; position: absolute; top: 50%; right: -10%; cursor: pointer; } .container-arrow--left{ display: none; height: 10px; width: 12px; background-image: url("../assets/icons/left-arrow.svg"); background-repeat: no-repeat; background-size: contain; background-position: center; position: absolute; top: 50%; left: -10%; cursor: pointer; }
Aquí el código de js:
const arrow_right = document.getElementById("arrow-right") const arrow_left = document.getElementById("arrow-left") const table_1 = document.getElementById("table-1") const table_2 = document.getElementById("table-2") arrow_right.onclick = function(){ table_1.style.display = "none" table_2.style.display = "grid" arrow_left.style.display = "block" } arrow_left.onclick = function(){ table_1.style.display = "grid" table_2.style.display = "none" arrow_right.style.display = "block" }
Algo que hice para no repetir codigo fue poner en el span una clase tranding la cual contuviera este codigo
.main-tables-grid .trending { display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-repeat: no-repeat; background-size: cover; background-position: center; }
Para los que no sepan para que hice esto es para no repeit codigo en el html puse up o down y en el css solo puse
.main-tables-grid .up { background-image: url("../assets/icons/trending-up.svg"); } .main-tables-grid .down { background-image: url("../assets/icons/trending-down.svg"); }```
Hola a todos! Les quería contar como pensé la estructura de la sección de las tablas para optimizar el uso de las clases y las líneas de código.
++Así me quedó el código HTML++
<section class="exchange-carousel-container"> <div class="exchange-carousel__item "> <!-- Monedas --> <!-- .market-title es la clase para darle color naranja al título --> <h3 class="exchange-carousel__title market-title">Monedas</h4> <!-- tabla de monedas con display grid --> <div class="exchange-carousel__table"> <p>Bitcoin</p> <!--.market-trend define la estructura del span donde va a ir la flechita--> <!-- .down o .up indican cuál de las dos flechas va --> <p>$1.96 <span class="market-trend down"></span></p> <p>Ethereum</p> <p>$0.07<span class="market-trend up"></span></p> <p>Ripple</p> <p>$2.17<span class="market-trend down"></span></p> <p>Stellar</p> <p>$4.96<span class="market-trend down"></span></p> </div> <!-- .market-currency es la clase para darle fondo naranja al texto --> <p class="exchange-carousel__currency market-currency">Valores en <strong>$USD</strong></p> </div> <div class="exchange-carousel__item "> <!-- Comisiones --> <!-- .fee-title pone el título de color celeste --> <h3 class="exchange-carousel__title fee-title">Comisiones</h4> <!-- tabla de comisiones con display grid --> <div class="exchange-carousel__table"> <p>Bitrade</p> <p>$12.96</p> <p>Bitpreco</p> <p>$13.07</p> <p>Novadex</p> <p>$13.15</p> <p>Coinext</p> <p>$14.96</p> </div> <!-- .fee-currency le da un color de fondo celeste al texto --> <p class="exchange-carousel__currency fee-currency">Valores en <strong>$USD</strong></p> </div> </section>
++Así el código CSS++
/************* ***CAROUSEL*** *************/ /*sección del carousel de tablas*/ .exchange-carousel-container { width: 100%; min-width: 288px; max-width: 700px; margin: 0 auto; font-family: 'Inter', sans-serif; } /*ESTRUCTURA de elementos Market y Fee del carousel*/ .exchange-carousel__item { width: 70%; min-width: 220px; max-width: 500px; margin: 0 auto 30px; font-family: 'Inter', sans-serif; } /*Títulos de las tablas*/ .exchange-carousel__title { margin-bottom: 12px; margin-left: 12px; font-size: 1.8rem; font-weight: 600; } /*Color del título Monedas*/ .market-title{ color: var(--bitcoin-orange); } /*Color del título Comisiones*/ .fee-title { color: var(--secondary-blue); } /*Estructura de las Tablas*/ .exchange-carousel__table { width: 100%; display: grid; grid-template-columns: 1fr 1fr; background-color: var(--just-white); border-radius: 8px; font-size: 1.6rem; font-weight: 500; color: var(--grey); } .exchange-carousel__table p{ padding: 10px; } /*Estilos de los precios de las tablas*/ /*"Todos lo elemenos de la derecha"*/ .exchange-carousel__table p:nth-child(even) { font-weight:normal; color: #757575; font-size: 1.4rem; text-align: center; } /*flechas de la tabla Market*/ .exchange-carousel__table .market-trend { background-repeat: no-repeat; background-position: right; margin-left: 20px; display: inline-block; width: 11px; height: 6px; } /*Flecha roja hacia abajo*/ .exchange-carousel__table .down { background-image: url('./assets/icons/trending-down.svg'); } /*Flecha verde hacia arriba*/ .exchange-carousel__table .up { background-image: url('./assets/icons/trending-up.svg'); } /*Elemento que indica el tipo de moneda*/ .exchange-carousel__currency { padding: 8px; width: 115px; height: 31px; border-radius: 8px; margin: 16px auto 0; color: var(--warm-black); font-size: 12px; text-align: center; } /*Texto con fondo naranja*/ .market-currency { background-color: var(--soft-orange); } /*Texto con fondo celeste*/ .fee-currency { background-color: var(--soft-blue); }
Así me quedó a mi.
Aquí les dejo el html y css de las respectivas tablas.
HTML
<section class="main-tables-container"> <!-- Tabla currencys, divisa, moneda--> <div class="main-currency-table"> <p class="currency-table--tittle">Monedas</p> <div class="currency-table--container"> <table> <tr> <td class="table__top-left">Bitcoin</td> <td class="table__top-right table__right">$1.96 <span class="down"></span></td> </tr> <tr> <td>Ethereum</td> <td class="table__right">$0.07 <span class="up"></span></td> </tr> <tr> <td>Ripple</td> <td class="table__right">$2.15 <span class="down"></span></td> </tr> <tr> <td class="table__buttom-left">Stellar</td> <td class="table__buttom-right table__right">$4.96 <span class="down"></span></td> </tr> </table> </div> <div class="currency-table--date"> <p><b>Actualizado:</b> 19 Julio 23:45</p> </div> </div> <!-- Tabla comisiones --> <div class="main-commissions-table"> <p class="commissions-table--tittle">Comisiones</p> <div class="commissions-table--container"> <table> <tr> <td class="table__top-left">Bitrade</td> <td class="table__top-right table__right">$12.96</td> </tr> <tr> <td>Bitpreco</td> <td class="table__right">$13.07</td> </tr> <tr> <td>Novadax</td> <td class="table__right">$13.15</td> </tr> <tr> <td class="table__buttom-left">Coinext</td> <td class="table__buttom-right table__right">$14.96</td> </tr> </table> </div> <div class="commissions-table--date"> <p><b>Actualizado:</b> 19 Julio 23:48</p> </div> </div> </section>
CSS
/*Tabla currency, divisa, moneda*/ .main-currency-table{ width: 70%; min-width: 235px; max-width: 500px; height: 360px; margin: 0 auto; font-family: var(--Inter); } .main-currency-table .currency-table--tittle{ margin-bottom: 15px; font-size: 1.8rem; font-weight: bold; line-height: 2.3rem; color: var(--bitcoin-orange); } .currency-table--container{ width: 90%; min-width: 230px; max-width: 300px; height: 250px; margin: 0 auto; } .currency-table--container table { width: 100%; height: 100%; } .currency-table--container td{ width: 50%; font-size: 1.6rem; font-weight: 500; height: 1.9rem; color: var(--gray); background-color: var(--withe); } .currency-table--container .table__top-left { border-radius: 15px 0 0 0; } .currency-table--container .table__top-right { border-radius: 0 15px 0 0; } .currency-table--container .table__buttom-right { border-radius: 0 0 15px 0; } .currency-table--container .table__buttom-left { border-radius: 0 0 0 15px; } .currency-table--container .table__right{ font-size: 1.4rem; font-weight: normal; line-height: 1.7rem; color: #757575; } .currency-table--container .down{ display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-down.svg'); } .currency-table--container .up{ display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-up.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; } /*Tabla comisiones*/ .main-commissions-table{ width: 70%; min-width: 235px; max-width: 500px; height: 360px; margin: 0 auto; font-family: var(--Inter); } .main-commissions-table .commissions-table--tittle{ margin-bottom: 15px; font-size: 1.8rem; font-weight: bold; line-height: 2.3rem; color: var(--secondary-blue); } .commissions-table--container{ width: 90%; min-width: 230px; max-width: 300px; height: 250px; margin: 0 auto; } .commissions-table--container table { width: 100%; height: 100%; } .commissions-table--container td{ width: 50%; font-size: 1.6rem; font-weight: 500; height: 1.9rem; color: var(--gray); background-color: var(--withe); } .commissions-table--container .table__top-left { border-radius: 15px 0 0 0; } .commissions-table--container .table__top-right { border-radius: 0 15px 0 0; } .commissions-table--container .table__buttom-right { border-radius: 0 0 15px 0; } .commissions-table--container .table__buttom-left { border-radius: 0 0 0 15px; } .commissions-table--container .table__right{ font-size: 1.4rem; font-weight: normal; line-height: 1.7rem; color: #757575; } .commissions-table--container .down{ display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-down.svg'); } .commissions-table--container .up{ display: inline-block; width: 15px; height: 15px; margin-left: 10px; background-image: url('./assets/icons/trending-up.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; }