Enzo Ivan Valdez
align-self: center **si te hubiese conocido antes!!**😥
Victor Andres Castillo Zambrano
jajajajajjaja me paso lo mismo
Fabricio Joel Miranda Quezada
Ya somos tres :c
Para nombrar las clases de los contenedores y contenidos, vamos a usar la metodología BEM. Pero para tenerlo más claro, hagamos un repaso de lo que es BEM.
¿Qué es BEM?
BEM (Block, Element, Modifier o Bloque, Elemento, Modificador) es una metodología ágil de desarrollo basada en componentes. Divide toda la interfaz en bloques que se pueden reutilizar y escalar.
De esta manera, podemos separar una sección en múltiples secciones pequeñas y darles un nombre en este orden y función.
Consejos para el nombre de las clases
No olvides: Establecer la ruta de la imagen en tu etiqueta img.
<img src=""./assets/img/logo.svg"" alt=""logo_batatabit"">
Enlazar tu archivo .css a tu index.html antes de empezar a aplicar estilos.
<link rel=""stylesheet"" href=""./styles.css"">
Cómo aplicar estilos de las clases
Recuerda que estamos diseñando para móviles primero, por lo que nuestra vista debe centrarse en eso. Cuando compruebes los resultados en el navegador, asegúrate de tener activada la opción de Dimensión: responsive en las DevTools.
Header
header { position: relative; display: flex; flex-direction: column; justify-content: center; width: 100%; min-width: 324px; height: 334px; text-align: center; }
Img
header img { width: 150px; height: 24px; margin-top: 60px; align-self: center; }
Div
.header--title-container { width: 90%; min-width: 288px; max-width: 900px; height: 218px; margin-top: 40; text-align: center; align-self: center; }
Deberíamos poder observar nuestro progreso de esta manera:
¡Y listo! Por ahora hemos aplicado varios estilos. Aún nos falta algunas etiquetas y agregar un degradado de fondo para terminar el header. Así que, ¡Vamos!
Contribución creada por: José Miguel Veintimilla (Platzi Contributor).
Enzo Ivan Valdez
align-self: center **si te hubiese conocido antes!!**😥
Victor Andres Castillo Zambrano
jajajajajjaja me paso lo mismo
Fabricio Joel Miranda Quezada
Ya somos tres :c
Juan Camilo García Ardila
El profesor al cambiarle la dirrección al flex con flex-direction:column hizo que a su vez el justify-content cambiara su direecion de centrado. Por este motivo en las clases de mas adelante le cuesta centrar algunos contenedores. Para evitar esto añadan en el header align-items: center con esto solucionan algunas fallas en el centrado de los contenedores.
Federico Ivan Llano
Muy bueno gracias, siempre se me dificultaba esto, y claro no recorde que se cambiaba con el column.
Pedro Moreno
Es cierto, gracias por compartir
Sneyder Barreto
Un dato a tener en cuenta:
Según la metodología BEM, los Elements deben llevar el nombre como: block__element, usando ++dos guiones bajos++ y luego el nombre. Por otro lado, los Modifiers deben llevar el nombre como: block--modifier, usando ++dos guiones++ y luego el nombre.
En la clase se nombran los Elements como Modifiers, un pequeño detalle a la hora de hacer el naming de las clases.
Jeferson Velásquez
Cierto
Jose Daniel Huerta Vazquez
Totalmente de acuerdo, otro dato a tomar en cuenta es que el utilizar BEM consiste en separar totalmente el HTML del CSS por lo que todos los elementos HTML deben contener una clase. El uso de etiquetas como selectores en CSS no es parte de utilizar BEM en su totalidad.
Beatriz Pérez Santana
Si quieren ver las reglas en el navegador le tienen que dar a la opción: Show rules
José Luis Díaz Santos
Un gran aporte, muchas gracias ;)
Hugo Ulises Esterripa Contreras
Gracias
Dayse Poma
Mis apuntes:
IMPLEMENTANDO BEM (Block, Element, Modifier) Es un enfoque basado en componentes para el desarrollo web, la idea es dividir la interfaz de usuario en bloques independientes. Bem es la metodología que vamos a usar a lo largo del curso, su objetivo es dividir lógicamente las piezas de las que se compone una web.
Bem establece que debemos de usar clases para nuestros selectores, clases que se dividen en:
Su sintaxis es: block
El nombre del bloque: describe su propósito (¿Qué es?), no su estado (¿Cómo se ve?).
Elementos: Una parte compuesta de un bloque que no se pueden utilizar por separado, normalmente son los botones, textos, imágenes, etc.
Su sintaxis es:
**block-name__element-name **
dos guiones abajo
El nombre del elemento describe su propósito(¿Qué es esto? - item, text, etc), no su estado(“¿Cual es, o lo que hace que parezca?- red, big, etc”)
Los elementos se pueden anidar unos dentro de otros, puede tener cualquier número de niveles de anidamiento.
Un elemento siempre es parte de un bloque, no otro elemento. Esto significa que los nombres de los elementos no pueden definir una jerarquía como: block__elem1__elem2
Modificadores: Los modificadores se usan para establecer estilos diferentes a uno mismo bloque o elemento. Su sintaxis es: block--modifier dos guiones Segun BEM block_modifier _un guion abajo _
El nombre del modificador describe su apariencia ( "¿De qué tamaño?" O "¿Qué tema?), su estado ( "¿Cómo es diferente de los demás?") y su comportamiento ( "¿Cómo se comporta? "o" ¿Cómo responde al usuario? ").
Victor Andres Castillo Zambrano
buenisimo
José Luis Díaz Santos
Que buena organización ;)
Daniel G. Parrilla
Tener en cuenta que si se usa flex-direction: column, justify-content: center centra verticalmente y si se usa flex-direction: row, justify-content: center centra horizontalmente. Nota: Si justify content actua sobre el eje X, item-align lo hace sobre el eje Y y viceversa todo depende de la opción elegida en flex-direction. Este punto en particular lamentablemente no se explicó en el curso anterior.
Dario Paladines
Exacto, no se explico y uno se da cuenta con la práctica que los justify y align cambian segun cambie la direccion del flex
Vicki Esther Avola
Gracias, buen aporte
Anderson Josué Oroya Silva
¿Qué onda con los elementos según la metodología BEM no deberían estar separados con dos guiones bajos? (__) Diego usa (--)
Jeferson Velásquez
Cierto, debe estar separado por __ y no por --, ya que son elementos no modificadores.
Diego De Granda
ProfesorHola Josué, sí, tienes toda la razón en el comentario que pones, y posiblemente no quedo claro en la clase así que aprovecharé para dar la aclaración Disclaimer La forma en que yo utilizo BEM es solo como estructura mental de crear estilos de forma modular para evitar reescribir estilos o tener problemas de especificidad en estilos monolíticos (No soy purista), comenté de BEM en el curso para todas las personas que van comenzando, tengan una referencia de una metodología para poder nombrar sus clases y crear sus estilos y evitar todo esos problemas que ya comenté.
Pero gracias por remarcar este punto, de abrirme el espacio de poder aclarar este detalle.
Jose Anibal Garcia Giraldo
Hola compañeros! me surge una pregunta y es ¿Por qué usa un position relative en este caso para el header?
Héctor Iván Sáenz Estrada
Lo usa para que nos sea mas fácil posicionar elementos de forma relativa. En este caso, nos sirve mucho tener al header con position relative para poder ajustar el enlace de "Conoce nuestros planes" de forma que quede "sobresaliendo" del header. . Si le damos a nuestro enlace un position absolute lo podríamos posicionar de forma relativa al elemento mas cercano que tenga algún tipo de position, en este caso, el header (con position relative) . Si quieres profundizar mas sobre el tema, te recomiendo esta página donde vienen explicados todos los positions de manera corta y entretenida: https://learnlayout.com/position.html
José Luis Díaz Santos
Excelente respuesta @hectorse, muy interesante la página muchas gracias :)
Alexander Moreno
Gonzalo Vidal
Compañeros, si no quieren estar dándole align-self: center a cada elemento del header, en este caso, ya que todo debe estar centrado, pueden ponerle al contenedor padre(header) la propiedad
align-items: center;
así todos sus hijos se alinearán al centro, y ya que estamos usando flex-direction: column, en este caso se alinearán al centro horizontalmente 😊
Liza Fernanda Castrillón Díaz
Hola! alguien sabe por qué cuando agrego “display: flex;” en el header. La imagen del icono se redimenciona y se hace más grande?
Con Flex: 
Alveiro Luis Hoyos Lozano
A mi me paso igual. Este comentario https://platzi.com/comentario/1859517/ me ayudao solucionarlo, tenia un error con al escribir el nombre de la clase.
Juan Fernando Lenis
Hola, me gustaría saber de donde salen todas las medidas. Yo solo escucho a Diego decir si si, aquí 218 acá 452.58 y no se de donde salen. Gracias!
David Rodriguez Postigo
Hola
En Figma puedes ver muchas de las medidas de los elementos y en base a eso se escala y se dan los tamaños.
En la siguiente clase muestra mas a detalle el proceso.
Juan Jiménez
Victor Andres Castillo Zambrano
gracias
Karen Edith Moreno Moreno
Gracias!!!
M. Ray Medina Salcedo
Porque en mi caso el display: flex muestra el logo tan grande
Leonardo de los angeles Espinoza Hernandez
Hola @ray.msal
Esto sucede porque su comportamiento externo de flex hace que se comporte como display:block; ocupando todo el ancho de la pantalla lo que hace que tu contenido abarque todo, define un width a tu contenedor y el problema se solucionara.
Si la imagen se sigue viendo grande trata agregandole una clase y define su height y su width.
Saludos!
Christian Latorre
width: 100%, para que se agrande hasta el ancho de su padre claro esta que dspues de 12 dias de este comentario ya debe saber como solucionarlo :)
Alejandra Hincapie
Hola. Veo que Diego esta manejando las medidas con px. si yo uso rem para estas medidas puede llegar a causar algún inconveniente en el usuario final? porque no usar rem en todas las medidas?
Andres Gallego
La recomendación es usar rem o em, El usar el uno o el otro no causaría ninguna afectación al usuario final siempre, aunque si los vas a usar es bueno que sepas convertir de px a rem.
Facundo Sebastian Garay Nuñez
Creo que para medidas es mejor px por que es absoluto y no cambia y rem es mejor para las letras ya que si el usuario tiene problemas de vision puede agrandar la letra si es que se tiene medidas relativas
Jerry Gil Contreras
Pregunta. Por qué el profesor está utilizando PX y no REM? en qué casos se usa rem, solo en textos?
Marcos Espinoza Illanes
Segun buenas practicas, deberiamos utilizar REM siempre. Si el profesor dice 320px, tu podrias colocar 32rem
Siempre y cuando tengas seteado el font-size: 62.5% en la etiqueta html
José Manuel Silva
Creí haber entendido en los cursos anteriores que rem era para todas las medidas y así se ajustaran a todo. Ahora no sé si es así o solo para usarse en los textos.
Salvador Galliano
Hola comunidad, si quieren convertir todas las dimensiones de px to rem existe una extension en VScode que te lo permite: https://marketplace.visualstudio.com/items?itemName=sainoba.px-to-rem
Luz Marina Orjuela Rojas
Gracias!!
andres gonzalez
Muchas gracias bro!!
Hola, el problema esta en que para alinear elementos cuando el display es flex debe agregarse un estilo adicional para alinear los componentes al centro como previamente se hizo con el header ya que caso contrario ESTE MISMO ignorara este (tal como lo es la imagen) Sin align-self:center;:
BEM (Block Element Modifier) es una metodología que usada para nombrar y clasificar selectores CSS de manera estricta, transparente e informativa.
Ejemplo: .header__button--red
header --> bloque
button --> elemento
red --> modificador
Estilos header:
position: relative; display: flex; flex-direction: column; justify-content: center; width: 100%; min-width: 320px; height: 334px; text-align: center;
Estilos header img:
width: 150px; height: 24px; margin-top: 60px; align-self: center;
Estilos .header--title-container:
width: 90%; min-width: 288px; max-width: 900px; height: 218px; margin-top: 40px; text-align: center; align-self: center;