Angel David Osorio Leyva
Matías Wasiak
Kevin Andres Curruchich Xocop
¿Cuáles son las técnicas de alineamiento previas a CSS Grid?
En el mundo del diseño web, antes de la revolución de CSS Grid, existían técnicas que, aunque menos sofisticadas, eran fundamentales para alinear elementos en una página. En este artículo, nos enfocaremos en dos de estas herramientas esenciales: margin y line-height. Si alguna vez te has preguntado cómo era posible alinear elementos de manera efectiva antes de las modernas herramientas de diseño web, estás en el lugar correcto.
¿Cómo se utiliza la técnica de margin?
La propiedad margin es uno de los pilares básicos de CSS utilizado para alinear elementos. Esta técnica se basa en definir márgenes externos de un elemento para posicionarlo dentro de su contenedor.
Propiedades de margin
margin-topmargin-rightmargin-bottommargin-leftAdemás de definir cada margen por separado, es posible usar el shorthand margin, que permite especificar todos en una sola línea, guiándose por las manecillas del reloj:
/* Ejemplo de uso de shorthand con valores en píxeles */ elemento { margin: 10px 15px 20px 25px; /* top right bottom left */ }
Ejemplo práctico
Imagina que tienes un contenedor con un tamaño definido y deseas alinear un elemento en posiciones específicas. La técnica margin permite ajustar estas relaciones espaciales para lograr dicha alineación. Por ejemplo:
.container { width: 180px; height: 180px; } .elemento { width: 60px; height: 60px; margin: 0 auto; /* Centrar horizontalmente */ }
¿En qué consiste la técnica de line-height?
La técnica de line-height se centra en el alineamiento vertical de textos dentro de sus contenedores y, combinado con vertical-align y text-align, ofrece una solución poderosa para manejar la disposición de texto.
Propiedades clave
text-align: Alinea el texto horizontalmente, con valores como left, center y right.vertical-align: Alinea visualmente el contenido en relación al contenedor verticalmente. Algunos valores son top, middle y bottom.line-height: Controla el espacio entre líneas, influenciando la disposición vertical del texto.Implementación en código
.container-vertical { height: 180px; line-height: 180px; /* Igual al alto del contenedor */ } .elemento { vertical-align: middle; /* Centra verticalmente */ text-align: center; /* Centra horizontalmente */ }
Esta configuración permite lograr un efecto visual en que el texto se alinea de modo uniforme, independientemente del tamaño del contenedor.
¿Cuáles son las aplicaciones prácticas de estas técnicas?
Tanto margin como line-height son herramientas versátiles que, cuando se aplican correctamente, permiten crear diseños web fluidos y visualmente atractivos. Las prácticas específicas incluyen:
margin: 0 auto; ayuda a centrar elementos horizontalmente.line-height, puedes centrar fácilmente textos dentro de botones u otros contenedores pequeños.Cada técnica de alineamiento tiene su lugar y propósito, y aunque CSS Grid ha simplificado mucho el proceso, el entendimiento de estas técnicas tradicionales sigue siendo un conocimiento valioso para cualquier desarrollador web. Sigue explorando y practicando para perfeccionar tus habilidades en diseño web.
Angel David Osorio Leyva
Matías Wasiak
Kevin Andres Curruchich Xocop
Paolo Joaquin Pinto Perez
José Miguel Lobato Fajardo
Federico Ivan Llano
Paola Duran
Daniel André Amaya López
Antonio Luis Fernandez Dromundo
Carlos Acevedo
Pedro Moreno
Jose Lorenzo Delgado
Giselly Romero Nuñez
Jhoan Stiven Zamora Caicedo
Iris Valentina Barrios
Lexaviere Feliz Lopez
Estefany Aguilar
ProfesorIsrael Vasquez
Jorge Alberto Alba Vega
John Alejandro Tibambre
Ángel David Roque Ayala
Omar Gabriel Aguilar Moscoso
Harrinson Quintero
Camilo Leon Camacho
Ana Rotela Cabrera
Rodrigo Alex Ayelef Huilipan
Sura Naileth Cedeño Lopez
Team PlatziIgnacio Consuegra
Nazareno Aznar Altamiranda
Kevin Bueno
Cristian Diaz
Leonardo Damián Paillamilla
Esau Rosales
Fernando Quinteros Gutierrez
Margin Collapse
El colapso de márgenes ocurre cuando el margen top y bottom de 2 elementos colindan y el margen final es el que sea mayor. Es decir, si un elemento tiene margin-bottom: 20px y el otro elemento margin-top: 10px, el margen final entre ambos elementos no será de 30px, si no que será de solo 20px.
Cabe aclarar que esto ocurre cuando usamos el display por defecto block.
Gracias por el aporte!
Gracias por la explicacion, lo tengo más claro😁
Margin auto: Para explicarlo en palabras sencillas se necesita comprender que: 1. Cuando se establece el margin: 0 auto; lo que hace el navegador es establecer el tamaño de los márgenes izquierdo y derecho por igual, además de que el superior e inferior tendrán 0 de margen, así:
margin-top: 0; margin-bottom: 0; margin-left: auto; margin-right: auto;
2. Por lo tanto como en este caso, el contenedor padre tiene un width: 180px; (espacio celeste) y el elemento del padre un width: 60px; (espacio rosado o celeste-claro), DETERMINARÁ que hay 120px de espacio libre para compartir entre margin-left y margin-right: Si se representaría de forma lógica en javascript:
var espacioLibre = 180 - 60; // 120 var porcionEquilibrada = espacioLibre / 2; // 2 porque se aplica hacia el eje x (izquierda y derecha)
Lo que daría:
margin-left: 60px; margin-right: 60px;
Y para el contenedor que va hacía la derecha (margin: 0 0 0 auto;), sería:
var espacioLibre = 180 - 60; // 120 var porcionEquilibrada = espacioLibre / 1 //esto porque solo se aplica hacía la izquierda (margin-left)
y quedaría:
margin-left: 120px;
Genial. Justo la duda que tenía. Cómo asigna los espacios el auto.
Habia entendido todo hasta la mitad, y me quedo en esa ultima parte la duda de como era matematicamente el auto, Gracias!
Me quedé esperando que explicara qué era lo que estaba haciendo..... ._."
Puedes ver la siguiente documentación para entender mejor line-height
x2
Seré sincero, el relojito como guía para las posiciones de Top - Right - Bottom y Left me pareció una genialidad ya que nunca había podido aprender cual es cual.
La verdad es que por fin puedo decir que no se me va olvidar gracias a esta técnica. Muy buena!
no es intuitivo ._. XD para esha si pero yo voy a tener que ver esta clase varias veces
Tecnica de Margin
Técnica line-height
Propiedades que necesitamos
++Text Align++
++Vertical Align++
++Line Height++
Tecnica Table Cell Propiedades que necesitamos
Técnica positions Propiedades que necesitamos
Vertical align y line height no son exclusivamente de textos.
Vertical align se aplica a elementos inline, inline-block o table-cell box.
Asimismo line height aplica para otros elementos no solo texto.
Un pequeño recorderis de margin. :)
todo entendido correctamente , lo que no entiedo es por que hay que darle un line-height del mismo tamaño del contenedor ??
Hola !!! Excelente tu pregunta 👌🏼 Es para que vertical-align tenga claro cuál es el espacio disponible que tiene para poder ubicarse. Entonces, le decimos: "Tienes un espacio disponible de 180px (ósea, ese line-height: 180px; que le agregamos al contenedor) para que te muevas libremente ahí :3".
En el minuto 9:28 se le mueven los textos porque los elementos "element1" "element2" y "element3" heredan la propiedad line-height de 180px de su padre "container1". Sin embargo, luego la profe corrige eso aplicando un line-height específico para cada uno de los elementos anteriormente mencionados. Me costó entenderlo un poco pero revisando el diagrama de la profesora finalmente lo capté. Espero les ayude.
Yo no le encontré sentido a lo que hizo, cuando escribió el line-height: 180px.
Excelente todo el tema de la documentación del curso
Me encanta la documentación del curso. Me encantan las fotos de los pizarrones que se encuentran en la sección esta clase, son tan claros y descriptivos.
Además, me encanta el uso de la herramienta codepen. Me permite comenzar de inmediato a interactuar con el código y comenzar con la clase.
opino igual que Angel
Tecnica MARGIN: .
Excelente clase, algunas cosas no las entendía, tuve que repetir algunas veces pero ya todo claro, decidí usar la variable ":root{ }" ya que las medidas 20px y 180px son muy repetitivas, y así quedaría:
@import url('https://fonts.googleapis.com/css2?family=Lato&display=swap'); :root{ --size-height:20px; --size-box:180px; } .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 5px; font-family: 'Lato', sans-serif; width: 550px; } .container { background: turquoise; width: var(--size-box); height: var(--size-box); } .element { width: 60px; height: 60px; text-align: center; padding-top: 10px; box-sizing: border-box; } .container1 { @extend .container; text-align: left; line-height: var(--size-box); } .element1 { @extend .element; background: papayawhip; display: inline-block; line-height: 42px; vertical-align: top; } .element2 { @extend .element; background: papayawhip; display: inline-block; line-height: var(--size-height); vertical-align: middle; } .element3 { @extend .element; background: papayawhip; display: inline-block; line-height: var(--size-height); vertical-align: bottom; } .container2 { @extend .container; text-align: center; line-height: var(--size-box); } .element4 { @extend .element; background: pink; display: inline-block; line-height: var(--size-height); vertical-align: top; } .element5 { @extend .element; background: pink; display: inline-block; line-height: var(--size-height); vertical-align: middle; } .element6 { @extend .element; background: pink; display: inline-block; line-height: var(--size-height); vertical-align: bottom; } .container3 { @extend .container; text-align: right; line-height: var(--size-box); } .element7 { @extend .element; background: lightcyan; display: inline-block; line-height: var(--size-height); vertical-align: top; } .element8 { @extend .element; background: lightcyan; display: inline-block; line-height: var(--size-height); vertical-align: middle; } .element9 { @extend .element; background: lightcyan; display: inline-block; line-height: var(--size-height); vertical-align: bottom; }```
Muy buena manera de aplicar lo aprendido en clases pasadas sobre Arquitectura CSS y como es bueno reutilizar el código. Excelente aporte ✨
Me pregunto donde estan los cursos de SASS? y poque esta usandolo si antes no estan en la ruta de desarrollo web.
auto auto es reemplazado por algún valor apropiado. Por ejemplo, puede usarse para centrar horizontalmente un elemento bloque. div { width:50%; margin:0 auto; } centrará el div horizontalmente.
Un único valor aplicará para todos los** cuatro lados.** Dos valores aplicarán: El primer valor para arriba y abajo, el segundo valor para izquierda y derecha. Tres valores aplicarán: El primero para arriba, el segundo para** izquierda y derecha,** el tercero para** abajo.** Cuatro valores aplicarán en sentido de las manecillas del reloj empezando desde arriba. (Arriba, derecha, abajo, izquierda)
Este curso es bien completo, se toma el tiempo para hablar bien sobre la historia, el concepto y el por qué de Grid.
Eso es algo que critico de algunos cursos de Platzi, donde la informacion esta muy resumida para lograr un video lo más corto posible, o poco y nada explican sobre el por qué de un elemento. Al final uno no termina de comprender muy bien por qué hace lo que hace
Es una muestra de profesionalismo abarcar de buena manera todas las areas de un curso =)
que feo era CSS
No tenía ni idea de por qué el margen auto sólo funcionaba con left y right. ¡Gracias por explicar el porqué!
Margin Collapse
Los márgenes top y bottom de los bloques a veces están combinados (colapsados) en un solo margen cuyo tamaño es el mayor de los márgenes combinados, un comportamiento conocido como colapso de margen.
Ejemplo:
Si tenemos un elemento con un margin-bottom de 3rem y otro elemento hermano adyacente con un margin-top de 2rem y estos márgenes colapsan, entonces el margen resultante será de 3rem (debido a que este es el mayor valor entre los márgenes que colapsan).
Fuente de la imagen: https://miro.medium.com/max/421/0*kAD00byJs8jdmXvr.png
.
Documentación Oficial:
No entiendo porque al contenedor le colocamos "vertical align:180px"
Si ponemos line-height estaremos especificando la altura deseada de tal forma que el navegador cuando usemos vertical-align el navegador estará calculando donde poner el elemento.
Espero haber respondido tu pregunta de una manera correcta, si es que aún no está claro házmelo saber.
💚 Nunca pares de aprender 🤘