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.
Empezemos por el lado izquierdo de la tabla, y lo llamamos desde su contenedor con .currency-table--container .table__top-left.
Le agregamos un border-radius: 15px 0 0 0 en donde cada una de las cuatro posiciones representa una esquina de la caja que estamos estilando: esquina superior izquierda, esquina superior derecha, esquina inferior derecha y esquina inferior izquierda, respectivamente.
Aplicamos estos valores a cada una de las esquinas.
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.
Llamamos a las etiquetas span con su clase desde el contenedor de la tabla con .currency-table--container .down.
Usamos display: inline-block para mantener el ícono en la misma línea que el texto.
Le damos un ancho y alto de 15px.
Agregamos un margin-left: 10px para separarlo del texto.
Llamamos la imagen desde su dirección con background-image: url("""").
Ajustamos su tamaño al del contenedor con cover, lo centramos y especificamos que no se repita la imagen.
Aplicamos los mismos estilos para la clase .currency-table--container .up. Sólo cambiamos la url del ícono.
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).
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.
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?
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.
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:
Terminado el reto!!
quedo genial
Genial, gracias me faltaba ese pequeño detalle del vertical-align middle
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_)
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
No sirve el link a tu repo? quiero ver como haces el Js
Danke !!
Yo tratando de ver si los bordes se redondearon o no
:) puedes poner otro color para ver mejor
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
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:
Cambiar el color de el fondo de la tabla así podrás ver con detalle si es que esta cambiando o no el bordeado.
Y el cambio de color lo haces acá:
Y al final solo regresas el color original y listo.
Quizás es un consejo obvio pero igual a alguien con problemas de la vista le sirve.
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
Sí, siempre es muy útil.
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);}
buenisimo
Así me quedó a mi.
Aquí les dejo el html y css de las respectivas tablas.
si yo no fuera usado un span con background, sino una <img/> estaria mal? que beneficio trae usar un span con background?
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.
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
Reto completado wuujuu
No entiendo como identifican los bordes de la tabla blanca con fondo blanco, yo lo veo todo blanco, me pueden ayudar?
Podrías ser un poco más específico con tu pregunta?
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.
Por que debemos poner un inline block para que los iconos puedan aparecer ?
Hola. 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.
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
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.