Empezamos la segunda sección de nuestro proyecto. Para crearla, primero debemos analizar el diseño que nos entregaron para empezar a maquetar en nuestro index.html. ¡Vamos a ello!
Cómo hacer la división de secciones
Lo primero es agregar una clase indentificadora a la primera de cuatro secciones que tenemos. Usando la metolodología BEM, class=""main-exchange-container"",
creamos dentro el primer contenedor div en el que tendremos la imagen. Añadimos la clase backgroundImg.
Creamos el segundo contenedor div para el título h2 y el párrafo p, en el que añadimos el contenido escrito en el diseño. Añadimos la clase main-exchange-container--title, en que main-exchange-container es el bloque y title el elemento.
Las tablas que muestra el valor de las monedas es una sección en sí, por lo que es más correcto crear un section en lugar de un div. El div lo colocamos dentro.
<section class=""main-exchange-container""><div class=""backgroundImg""></div><div class=""main-exchange-container--title""><h2>Visibilizamos todas las tazas de cambio.</h2><p>Traemos información en tiempo real de las casas de cambio y las monedas más importantes del mundo.</p></div><section class=""main-tables-container""><div></div></section></section>
Cómo aplicar estilos a las secciones
Hay 3 elementos que debes tener en cuenta:
main
Ajustamos el ancho al 100% y la altura en auto porque el mismo contenido que agreguemos definirá el espacio que vaya a ocupar.
Agregamos un min-width: 320px para que no se distorcione si llega a medidas más pequeñas.
Le damos un color de fondo con la variable --off-white.
main {width:100%; min-width: 320px;height: auto; background-color:var(--off-white);}
.main-exchange-container
Llamamos al primer contenedor principal en que estamos trabajando y ajustamos de igual manera el ancho al 100% y la altura en auto.
Añadimos un padding-top: 80px y un padding-bottom: 30px para agregar espacio tanto arriba como abajo.
En la parte de los estilos de main falto colocar un min-width de 320px para que el contendedor con color de fondo (off-white) no se rompa cuando se alcanzen resoluciones menores a esta.
Nota: Claramente es de menor importancia este detalle, pero me parecio curioso y lo quise añadir.
De hecho, no lo esta haciendo correctamente, lo note en videos anterirores y hasta me emepece a cuestionar, pero no, esta aplicando mal la metodologia BEM, por lo menos hasta este punto del curso.
En una clase anterior, respondiendo a un comentario similar Diego aclaró que no era purista en la aplicación de BEM; más bien toma BEM como una referencia inicial y pero en la práctica sigue una convención algo más de él.
Una técnica que me gusta hacer es desarrollar la pagina sin ver el video, en ocasiones me queda fácil en otras me queda difícil pero jamás me rindo, cuando lo termino si coloco el video para ver detalladamente en que falle y que puede mejorar.
Hola Compañero Amaury, antes que nada gracias por la recomendación, esta excelente, por otro lado creo que el profe Diego no lo toma en cuenta por que esta trabajando en el mínimo de pixeles que tienen los dispositivos y de ahí se crece.
Saludos.
"significa que su tamaño no va ser menor a 288px cuando el view port sea de 320 (que es el menor posible)".
En realidad solo significa que su tamaño no va ser menor a 288px independientemente del tamaño del viewport, no para cuando sea de 320px, ya que en ese caso ni siquiera seria necesario el min-width. El
min-width: 280px
solo seria de utilidad en dispositvos de menos de 320px (si los hay), pero aun asi no es la mejor practica porque realmente NO lo hace responsive, ya que genera un scroll horizontal.
text-align: center te sirve para centrar el contenido del elemento al que se lo pones, y margin: 0 auto te centra el elemento (contenedor) al que se lo pones.
Hola, sé que parecen lo mismo, pero realmente no lo son, text-align: center, como su nombre lo indica, está pensando para centrar texto específicamente, aunque también puedes manipular ciertos elementos para que text-align: center funcione con ellos, aún sin ser texto, usualmente, este funciona con elementos de tipo inline (El texto es de tipo inline, por eso funciona con textos)
margin: auto, aunque centra los elementos, no está pensando para centrarlos, de hecho, como su nombre lo dice, lo que hace es agregar un margen de manera automática. margin: auto es un "hack" que usamos para centrar cierto tipo de elementos, porque realmente no funciona con todos, para que funcione, el elemento que quieres centrar debe ser de tipo block, y este debe tener una medida absoluta, solo de esa manera el navegador es capaz de calcular los márgenes de izquierda y derecha para que se pueda centrar.
Aunque eran buenos trucos, hoy en día la verdad es que ya no es recomendable usar ni uno ni otro, hoy en día existe una cosa maravillosa llamada "flexbox":D
Si una imagen tiene significado en términos del contenido de tu página, entonces deberías usar una imagen HTML. Si la imagen es puramente decorativa, deberías usar imágenes de fondo CSS.
Como siempre buenas practicas SEO
No es algo obligatorio, es recomendable que lo uses las veces que puedas pero puede llegar veces que necesites que la imagen esté sola, incluso puede llegar veces que pongas dentro de links imágenes, todo esto lo irás viendo poco a poco mientras vallas haciendo prácticas :D
Tambien si no desean copiar los textos a mano, pueden ir al Figma aca y si le dan click al texto, tendrán un apartado de Content , alli al darle click se les copiara el texto seleccionado
Aquí mi código para la estructura HTML de esta Primera Sección :D
<section class="main__exchange__container"><div class="background__imageContainer"></div><div class="main__exchange__container--title"><h2>Visibilizamos todas las tasas de cambio.</h2><p>Traemos información en tiempo real de las casas de cambio y las monedas más importantes del mundo.</p></div><section class="main__tables__container"><div></div></section></section>
Hola, logre hacerlo con Grid, aquí les dejo el código:
index.html
<section class="main-exchange-container"><div class="backgroundImg"></div><div class="main-exchange-container--title"><h3>Visibilizamos todas las tasas de cambio.</h3><p>Traemos información en tiempo real de las tasas de cambio y las
monedas mas importantes del mundo.</p></div><section class="main-tables-container"><h3 class="main-tables-container__titulo--tabla">Monedas</h4><span class="main-tables-container__titulo--moneda">Bitcoin</span><div class="main-tables-container__precio"><b>$</b>1.96</div><div class="main-tables-container__grafico"><img src="./assets/icons/trending-down.svg"/></div><span class="main-tables-container__titulo--moneda">Ethereum</span><div class="main-tables-container__precio"><b>$</b>0.07</div><div class="main-tables-container__grafico"><img src="./assets/icons/trending-up.svg"/></div><span class="main-tables-container__titulo--moneda">Ripple</span><div class="main-tables-container__precio"><b>$</b>2.15</div><div class="main-tables-container__grafico"><img src="./assets/icons/trending-down.svg"/></div><span class="main-tables-container__titulo--moneda">Stellar</span><div class="main-tables-container__precio"><b>$</b>4.96</div><div class="main-tables-container__grafico"><img src="./assets/icons/trending-down.svg"/></div><span class="main-tables-container__actualizacion"><b>Actualizado:</b>19Julio23:45</span
></section>