Ahora vamos a revisar algo que consideramos un super poder en CSS Grid. Nos permitirá alinear los elementos en nuestro contenedor de la manera en que deseemos. También puede ver el concepto de alineación desde el diseño gráfico.
Cómo funcionan las propiedades de alineación
Vamos al editor de texto. Creamos un contenedor con lo que hemos aprendido. Usaremos este contenedor para ejemplificar cómo funcionan las propiedades de alineación.
Todos los que empiezan con justify nos ayudan a ordenar los elementos de manera horizontal en el espacio. justify-items: center nos da:
Align-items:
Todos los que empiezan con align nos ayudan a alinear los elementos de manera vertical en el espacio. align-items: center nos da:
Place-items:
Es la mezcla de justify-items y align-items. place-items: center nos da:
Propiedades de alineación del contenedor:
Estas propiedades son las que ajustan la grilla completa al espacio en la que ella vive. No tiene que ver nada con los elementos. La grilla funciona como un bloque.
Justify-content: *justify-content:
center nos da este resultado:
Align-content: *align-content:
center nos da este resultado:
Place-content: place*-content:
center nos da este resultado:
Además de estas propiedades de alineación, tenemos otras que dan directamente propiedades a los hijo de la grilla o grid items. Es decir, podemos alinear los elementos dentro de los contenedores de manera independiente. Estas son:
Justify-self
Align-self
Place-self
Completa este reto
¿Listo para poner a prueba tus conocimientos?
Como reto, tendrás que crear un grid de 2x2 en que los elementos se ubiquen en la esquina inferior derecha del contenedor. El contenedor debe estar centrado.
¡Muchos éxitos!
Contribución creada por: José Miguel Ventimilla (Platzi Contributor), con aportes de Josué Ramírez Hernández.
Aportes 547
Preguntas 17
Ordenar por:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
Propiedades de alineación de los ítems
Justify-items: Alineación de manera horizontal en el espacio que haya
Align-items: Alineación vertical
Place items: Mezcla de las 2 Justify y Align
Valores:
start | end | center | stretch;
Propiedades de alineación del contenedor
Justify-content: Alineación de manera horizontal en el espacio que haya
Align-content: Alineación vertical
Place-content: Mezcla de las 2 Justify y Align
Valores:
start | end | center | stretch |space-around | space-between |space-evenly;
Propiedades de alineación del ítem
Justify-self: Alineación de manera horizontal en el espacio que haya
Align- self: Alineación vertical
Place- self: Mezcla de las 2 Justify y Align
Valores:
start | end | center | stretch;
flex-start - Cada línea solo llenará el espacio que necesita. El conjunto de elementos se moverán hacia el inicio del eje vertical / horizontal del contenedor.
flex-end - Cada línea solo llenará el espacio que necesita. El conjunto de elementos se moverán hacia el final del eje vertical / horizontal del contenedor.
center - Cada línea solo llenará el espacio que necesita . El conjunto de elementos se moverán hacia el centro del eje vertical / horizontal del contenedor.
space-between - Cada línea solo llenará el espacio que necesita. El espacio restante aparecerá entre las líneas.
space-around - Cada línea solo llenará el espacio que necesita. El espacio restante se distribuirá equitativamente alrededor de las líneas
space-evenly - Cada línea solo llenará el espacio que necesita. El espacio restante se distribuirá equitativamente entre las líneas
stretch - Cada línea se estirará para llenar el espacio restante. Disponible únicamente para la alineacion vertical
.
.
align-items | justify-items
.
Especifica la alineación vertical (align-items) / horizontal (justify-items) del contenido de cada elemento dentro una flexbox o una cuadrícula.
align-items: center;
justify-items: center;
Valores disponibles
flex-start | start - Los elementos alinean al inicio del eje vertical / horizontal.
flex-end | end - Los elementos alinean al final del eje vertical / horizontal.
center - Los elementos alinean en el centro del eje vertical / horizontal.
baseline - Los elementos alinean en la línea de base del eje vertical / horizontal.
stretch - Los elementos extenderán a lo largo de todo el eje vertical / horizontal.
.
.
align-self | justify-self
.
Especifica la alineación vertical (align-self) / horizontal (justify-self) del contenido de un elemento independiente dentro una flexbox o una cuadrícula.
align-self: center;
justify-self: center;
Valores disponibles
auto - el objetivo utilizará el valor de la propiedad align-items.
Admite todos los valores disponibles en las propiedades align-items & justify-items
.
.
place-content | place-items | place-self
.
Las 3 propiedades son un atajo que nos permite definir en una sola linea las propiedades align-* & justify-*
place-content: stretch space-between;
place-items: center start;
place-self: center start;
En todas las estructuras, el 1er valor corresponde a la propiedad align-* y el 2do valor a la propiedad justify-*. Si no se establece el 2do valor, se utilizara el primero como valor para ambas propiedades.
Les comparto una pagina que habla mucho sobre este tema https://css-tricks.com/snippets/css/complete-guide-grid/#grid-properties
Me ha ayudado mucho a comprender. No he tenido que hacer un curso de grid como este para entender el 70% de este fabuloso sistema de maquetado de sitios. Aun asi he aprendido cosas que no sabía como grid auto flow. Eso ayuda a no tener que recurrir a flex cuando vas a implementar las vistas de por ejemplo, un numero casi ilimitado de articulos de noticias, post de blogs, productos de ecomerce, usuarios de red social, etc. Estoy ahora mismo haciendo un foro chan/redit con django. Y estoy implementando tanto grid como flex, asi como diseño responsive. Es el proyecto mas serio que me he propuesto. En su momento les compartiré como va quedando.
También podemos usar la propiedad place-content de esta manera:
place-content: [valor del eje vertical] [valor del eje horizontal]
place-content: center end
La anterior línea de código centraría la grilla en el eje vertical y la pondría al final en el eje horizontal. Lo mismo podemos hacer con place-items y place-self
No se que estoy haciendo…
pierdo mucho tiempo haciendo los ejercicios ¬¬
el cuadrado del medio crei que se iri a formar solo pero no (si
le doy zoom se pierde la imagen por el centro)
Reto cumplido, al momento de hacer código, tarde un poco en colocar correctamente las propiedades, ya que en el inspector de elementos no es muy entendible (para mi) durante la clase.
Hice lo que mejor pude hasta el momento, creo que voy por buen camino. dejo el codigo por aca
![](https://static.platzi.com/media/user_upload/image-adadc0da-62b6-4ee7-81c2-38981e364e39.jpg)
![](https://static.platzi.com/media/user_upload/image-4a3bd6d5-9842-4358-a8d5-c6c6b4e56b20.jpg)
![](https://static.platzi.com/media/user_upload/image-65f5bb21-c001-430c-a3f9-2aed962187d0.jpg)
*!Propiedades de alineación:*
**
* *Justify: cuando veamos una propiedad que comienza con "Justify" significa que nos ayuda a alinear de manera horizontal el espacio que tenemos.*
* *Align: cuando veamos una propiedad "Align" es alineación vertical con respecto al espacio que tenemos.*
* *Place: es la mezcla de estas 2 directivas.*
*!Propiedades de alineación de los items:*
**
*estas propiedades son las que se declaran en el contenedor y nos ayuda a alinear todos los items que viven dentro de ese contenedor, se complementa con las propiedades anteriores:*
* *Justify-items*
* *Align-items*
* *Place-items*
*!Propiedades de alineación del contenedor:*
*Estas propiedades son las que ajusta la grilla completa al espacio donde ella vive (no tiene nada que ver con los elementos en su interior) si no, que se alinea completamente como un bloque (es decir, ella y su contenido se alinean como un solo conjuntos).*
* *Justify-content*
* *Align-content*
* *Place-content*
*!Propiedades de alineación para los items individual:*
*Estas propiedades de alineación se le dan directamente a lo hijos directo del contenedor que le coloquemos la propiedad de "Display: Grid".*
* *Justify-self*
* *Align-self*
* *Place-self*
No sé si soy hacker o el reto de esta clase estuvo muy facherito, o no lo entendí bien xd. Comparto mi resultado :v
![](https://static.platzi.com/media/user_upload/image-c7c3df02-1c86-47fb-bbc6-bdeb43456f90.jpg)v
No se puede resolver usando 2x2, necesitas incluir un 5 elemento en el centro para lograr en cuadrado oscuro que se ve en la imagen.
Tal vez usando blend-mode: multiply y pseudoclases, que son cosas que no hemos visto en la ruta. Pero aunque ocupe posiciones negativas (- margin-left: -5px;) Grid las va a mantener separadas
![](https://www.imghippo.com/i/wjKfg1720202005.jpg)
Me rindo, no logro que me quede exactamente igual jajaja :(
![](https://static.platzi.com/media/user_upload/Exercise2-d33a2cb8-ea82-4317-b53d-accaea003d1c.jpg)
Mi reto, solo me falto el efecto del cruce del gap, pensé que los haría en automático.
![](https://static.platzi.com/media/user_upload/imagen-7868f7c7-7e2f-4d60-8316-b3a482a99060.jpg)
![](https://static.platzi.com/media/user_upload/imagen-d218abda-fc11-439b-8baf-8f9091fc7af4.jpg)
![](https://static.platzi.com/media/user_upload/imagen-47ae432a-2e7d-4dbe-83fc-5ce9305d1e7b.jpg)
Help Me!
Llegué al siguiente resultado pero como diríamos en mi tierra, a madrazos(Casi adivinando).
![](https://static.platzi.com/media/user_upload/image-3d46a878-c3a9-4a37-8182-0d56c2225485.jpg)
Usé el siguiente código:
![](https://static.platzi.com/media/user_upload/image-c620b85c-bc69-4b72-9a57-11739d599279.jpg)
![](https://static.platzi.com/media/user_upload/image-53b26be5-08aa-40a2-876a-655ede7c6de6.jpg)![](https://static.platzi.com/media/user_upload/image-83a91794-bc11-48b9-9068-199083b9b1d9.jpg)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?