Vamos a crear el código para las tablas de nuestro proyecto. Observamos en el diseño un total de dos tablas. Mientras que aquí aprenderás el desarrollo total de una, tu reto será completar la segunda, ¡con todo y estilos!
Pasos para hacer la maquetación
Vamos a la sección que creamos anteriormente con la clase de main-tables-container.
Dentro del div, creamos una etiqueta p para el texto ""Monedas"".
Abajo creamos otra etiqueta div que contendrá la etiqueta table, que la tabla en sí.
Trabajamos con dos etiquetas más: tr (table row) para las filas y td (table data) que va dentro, para la información de cada fila.
Agregamos la información correspondiente, en base al diseño sobre el que trabajamos.
Podremos ver que la información se organiza como si se tratara de una tabla de excel. Cada celda ocupa un espacio igual y se organiza una sobre otra.
Cómo añadir las clases
Empezamos a añadir las clases para poder aplicar estilos.
Al primer div lo nombramos main-currency-table porque se trata de la tabla de valores actuales.
Nombramos currency-table--title a la etiqueta p como título del contenedor.
currency-table--container al div por ser el contenedor directo de la tabla.
No necesitamos agregarle clases a la etiqueta tabla o a las filas, pero sí al contenido. Por ejemplo, la primera sería table__top left. Agregamos un doble guión bajo porque según la metodología BEM, es para diferenciar un elemento (table) de un bloque y modificador (top_left).
Al precio le añadimos dos clases: table__top-right table-right. Esto es porque tanto la columna de nombres como la de precios tienen estilos distintos. De esta manera podremos llamar una sola clase y aplicar los estilos a todos los que la contienen.
Añadimos la clase table-right a todas las celdas con precios de la tabla. A la última celda colocamos antes la clase table__bottom-right por ser la última.
Añadimos la clase table__buttom-left a la última fila de la tabla. Como ves, sólo la primera y última fila tienen clases adicionales.
Ya sólo nos falta el contenedor en el que se actualiza la información. Lo creamos fuera del div que contiene la tabla y le agregamos una etiqueta p para el texto que contiene.
Resaltamos la palabra mostrada en negritas colocándola dentro de la etiqueta b.
Por último le añadimos la clase currency-table--date al nuevo contenedor creado para poder aplicarle estilos
<section class=""main-tables-container""><div class=""main-currency-table""><p class=""currency-table--title"">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></span></td></tr><tr><td>Ethereum</td><td class=""table__right"">$0.07</td></tr><tr><td>Ripple</td><td class=""table__right"">$2.15</td></tr><tr><td class=""table__buttom-left"">Stellar</td><td class=""table__bottom-right table__right"">$4.96</td></tr></table></div><div class=""currency-table--date""><p><b>Actualizado:</b>19 de julio 23:45</p></div></div></section>
El resultado renderizado en el navegador mostraría:
¡Bien! Hemos maquetado la tabla de la primera sección del proyecto. Recuerda que aún falta otra que es parte de tu reto. Ahora, ¡vamos por esos estilos para las tablas!
Contribución creada por: José Miguel Veintimilla (Platzi Contributor).
Aprender a usar <table> nos da un valor agregado bastante importante ya que esta es la forma con la cual se maquetan y diseñan los emails (Platzi tiene un curso sobre esto). De esta forma podríamos colaborar con el equipo de email marketing para crear emails atractivos. 😎
.
enserio platzi tiene un curso de maquetacion de email????
Gran aporte!
Me parece que está usando el __ y el -- de la metodología BEM al revés, usa el __ para los modificadores cuando debería ser -- y viceversa. Confunde un poco.
Asi es , y pues dice que "segun la metodologia BEM" lo cual es incorrecto , pero seguro se le paso a Diego este detalle , igual tambien esta en nosotros mismos ponernos en la tarea de ver como es en si esta metodologia , si la deseamos aplicar
En otro video dijo que lo usa como guía y recomendacion, pero no lo sigue estrictamente, lo hace con su toque, pero la base como usa las palabras es BEM
dure un rato pero logré hacer esa tabla al 100 con grid y flex acá les comparto el código, si me pueden dar retro de mejores prácticas estaría super!
Hola! una pregunta, como lograste hacer el espacio entre los recuadros de la tabla. No doy con ello
@Joel8D pana le puse un gap, revisate bien mi código en donde puse las clases y los atribitos que les puse pero acá esta el fragmento en donde le puse el gap
Para que se vea un poco mas dinámica la fecha, (ya que no estamos en Julio...) pueden usar esta linea de JS para que les cargue la fecha y hora del momento:
Yo deje esta clase por 2 días todo por las tablas D:
Pero volví y creo entendí ahora si.
Pero ahora odio las clases...
Me perdí mucho en el porque puso esas clases a los elementos de la tabla ahora!!!
Todos, por eso ya no se usan para desarrollo, hay herramientas mejores, las tablas ya son del pasado (No aplica para email marketing :p)
Un pequeño tip para agregar símbolos a los precios:
Si utilizan el psudelementbefore y le agregan el símbolo “$” no tienen que escribirlo cada vez
Luego creó la etiqueta de script para que tome la hora actual:
<script>let fecha =newDate(); fecha.getDate;document.getElementById("fechaActual").innerHTML= fecha;</script>
Por si necesitas una vista grafica:
Hola!, cual es la diferencia en usar <strong> y <b> para poner en negrita un texto?
Hola!
<b>: Pone tu texto en negritas (pero esta etiqueta NO tiene sentido semántico).
<strong>: También pone tu texto en negrita, sin embargo, esta SÍ tiene sentido semántico es decir Google le da relevancia al texto que pongas ahí. Te ayuda mas para el SEO, lo cual interpreta que lo que coloques dentro de estas etiquetas tiene mas relevancia.
Nunca pares de aprender :green_heart:
Hola, perfecto! muchisimas gracias por responder! c:
Utilizando grid :)
Muchas gracias me acabaste de ayudar con un problema de centrar las monedas y el grid jajaja
Lo importante es no rendirse, ahí vamos :D
buenisimo
No me quedo claro porque a veces les ponia clases y a otros no, y como vas a distinguir entre los span para poner sus logos si no les puso clases especificas o ID?
eso se llama especificidad, en el curso definitivo de html y css las buenas practicas implican que entre menos se use ID es una mejor, y usar la semantica de html para el mejor desarrollo de la pagina, si deseas que te ayude a entender con gusto escribeme
lo hace por medio de la especificidad pero la metodología bem sugiere que todos los elementos tengan clase, para que de esa forma se trabaje bajo una misma jerarquía
Lo hice con Grid. Me quedó así…
.HTML
<section class="exchange"><div class="exchange__background-img"></div><div class="title-container title-container--exchange"><h2 class="title">Visibilizamos todas las tasas de cambio.</h3><p>Traemos información en tiempo real de las casas de cambio y las monedas más importantes del mundo.</p></div><div class="coins-and-fees"><section class="coins"><h3 class="coins__title">Monedas</h4><div class="coins__table"><div class="coins__names"><div class="table__item">Bitcoin</div><div class="table__item">Ethereum</div><div class="table__item">Ripple</div><div class="table__item">Stellar</div></div><div class="coins__prices"><div class="table__item item--coin-price">$ 1.96<span class="tendency tendency--down"></span></div><div class="table__item item--coin-price">$ 0.07<span class="tendency tendency--up"></span></div><div class="table__item item--coin-price">$ 2.15<span class="tendency tendency--down"></span></div><div class="table__item item--coin-price">$ 4.96<span class="tendency tendency--down"></span></div></div></div><div class="coins__last-update"><b>Actualizado:</b>19Julio23:45</div></section><div class="exchange__button exchange__button--left"></div></div></section>
Yo hice las tablas antes de ver la clase, hice 2, una con grid y una con <table> pero mi codigo tiene muchas menos clases, es necesario usar tantas? ayuda a la manutencion del codigo? A veces siento que alguien deberia revisar mi codigo para ver que estoy haciendo mal o bien