Las técnicas de alineación son fundamentales al trabajar con CSS Grid, ya que no siempre queremos que nuestros elementos inicien y terminen en las líneas predeterminadas de la cuadrícula. En este apartado, exploraremos tres propiedades esenciales: Justify Self, Align Self y Place Self. Estas propiedades permiten controlar el posicionamiento de los elementos grid de manera más dinámica y estilizada.
¿Qué es Justify Self y cómo se aplica?
Justify Self se utiliza para alinear elementos horizontalmente dentro de su contenedor. Esta propiedad trabaja principalmente sobre el eje Inline, lo cual facilita el control de los elementos grid a lo largo de este eje. Por ejemplo, si deseas alinear el primer ítem de un grid 2x2 al inicio de su celda, puedes emplear Justify Self: start.
El uso de nth-child en este ejemplo es una opción eficiente para evitar sobrecargar el HTML con clases adicionales, aprovechando la capacidad de las pseudoclases de CSS.
¿Cómo funciona Align Self?
Align Self maneja la alineación de los elementos verticalmente en su contenedor y opera principalmente sobre el eje Block-Axis. Por defecto, esto es de arriba hacia abajo en una página web. Si deseas que un elemento se alinee al inicio de su celda, usarías Align Self: start.
Ejemplo de código en CSS
.item:nth-child(1){align-self: start;}
Es crucial recordar que al trabajar con Align Self, es necesario especificar la altura de los contenedores para garantizar que las propiedades de alineación se apliquen correctamente.
¿Qué es Place Self y cuándo utilizarlo?
Place Self es una propiedad abreviada que combina Align Self y Justify Self, permitiéndote alinear un elemento en ambos ejes con una sola línea de código. Los valores pueden ser declarados en el siguiente formato: place-self: [align-self] / [justify-self].
Ejemplo de un cuestionario: ¿Cómo centrar un ítem?
Un ejemplo interesante que se presentó es centrar un ítem verticalmente en un grid. Las opciones para lograrlo podrían ser:
A) place-self: stretch
B) place-self: center
C) place-self: center stretch
Para estos ejercicios de alineación, es alentador que los estudiantes experimenten con los diferentes valores disponibles y exploren cómo cada configuración afecta al elemento dentro del grid.
En resumen, manejar estas propiedades te permitirá controlar la disposición de tus elementos de manera más intuitiva y limpia. Sigue investigando, probando nuevas combinaciones, y verás que alcanzarás una mayor sofisticación y funcionalidad en tus diseños webs. ¿Listo para seguir explorando el vasto potencial de CSS Grid? ¡Adelante!
Sería la C porque, según lo visto, primero es align (vertical) y luego justify(horizontal), por tanto, place-self: center stretch lo que estaría haciendo es, alinear de manera vertical en el centro y de manera horizontal se alinea con un tipo ``stretch` que es básicamente estirarse todo lo que se pueda 🤔.
Correcto :D
Tus respuestas siempre ayudan un montón. C:
La respuesta al quiz es: C
place-self: center stretch
Empecé a agregar cosas hasta que se me fue de las manos pero me gusto, vamos a ver si logro hacerlo.
:D
Puedes planear desde ya la grid en photoshop, asi queda refacil luego pasarlo a código
😂Muy buena idea utilizar Photoshop para construir la Grilla!! 👏👏👏
@media (prefers-color-scheme: dark) { /* Styles according the dark mode */ }
este media les ayudará a estilizar su página web en modo oscuro.
Respuesta al quiz es C; por deducción, es la única respuesta que contiene los dos atributos necesarios para funcionar: justify y align.
La respuesta del quiz es la opción C: place-self establece tanto align-self y justify-self. align-self toma el valor de center, así que el elemento es alineado al centro de forma vertical, y justify-self toma el valor de stretch por lo que el elemento ocupa todo el ancho de la celda.
Si queremos manipular desde los items podemos hacer uso de las propiedades parecidas a las que vimos como: Justify-Align-Place pero en este caso no serán Item o Content, si no SELF.
Justify-Self: MISMAS PROPIEDADES QUE LOS ITEM O SELF
Una Pseudo clase que nos ayuda a utilizar un elemento o elementos en especifico y no llenarnos de mas clases diferentes, podemos utilizar la:
.item:nth-child(1){}
Aquí lo que decimos es que podemos utilizar el primer elemento que contenga la clase item.
Si queremos utilizar todos y solo excluir a uno, podemos a usar:
.item:not(:nth-child(1)){}
Donde especificamos que usaremos todos los elementos de la clase EXCEPTO el primero.
Respuesta: C.
Alineado al centro verticalmente y estirado para que ocupe todo horizontalmente
La respuesta al quiz es: C
La respuesta correcta es la C Para los que no sepan que es stretch dejo la documentación abajo:
stretch
Los elementos flexibles son estirados de modo que el tamaño transversal de sus límites sea el mismo de la línea, manteniendo sus restricciones de anchura y altura.
Básicamente nos dice que estira el elemento para que ocupe el 100% de su contenedor respetando su propio ancho y alto máximo y mínimo, en este caso ya que usamos el stretch para el valor justify que está en el eje X ocupa todo el ancho.
C
La respuesta es: La C.
Yo pensaba que era la B, pero solo se estaría alineando de manera verticalpero no ocuparía todo el espacio horizontal que tendría. Por eso el valor de "stretch" en la segunda posicion aplicaria en la parte horizontal, basicamente para que ocupe todo ese espacio sobrante
Algunas les funciono? por alguna razon el efecto strech no me funciona para tomar todo el tamaño de lado de mi cuadro, solo me lo posiciona a mi lado superior izquierdo, y para entender bien entre diferencias como place-self y place-items. Aqui no lo explican por eso pregunto en base a lo que vi practicando, place-self: seriia para ponerlo a los elementos hijos y moverlos indivudualmente y place-items: seria para ponerselo al contenedor padre y mover todos los elementos de la columa del mismo modo?
Hola Galvan94, Place-Items: es una manera corta para no tener que escribir align-items: valor; y justify-items: valor; Entoces quedaría así: place-Items:center stretch; siempre el primer valor será para la alineación vertical (align) y el segundo valor para la horizontal (justify). place-content:center center; sería para alinear la grid completa dentro del contenedor. Es decir acá estamos centrando la cuadrícula.
Si queremos alinear solo un elemento, utilizamos las propiedades justify-self: valor;
align-self: valor;
cabe anotar que estas se declaran en el hijo y no en el padre.
Para 'justify' que utiliza el 'inline-axis', el width (ancho) del elemento debe estar definido. Para 'align' que utiliza el 'block-axis', el height (alto) del elemento debe estar definido.
De lo contrario los elementos no toman las propiedades, por no tener un espacio para determinar el punto de inicio y final.
No lo entendí a la primera, pero siempre tengo en cuenta las pseudoclases y pseudoelementos, es algo que tengo que ver y repasar.
Por suerte lo entendí, y ya que me la pasaba usando clases con nombres específicos para cada elemento, y no sabia como utilizar pseudoclases con "heredados" me va a ayudar bastante en las prácticas.
Los justify y align los aprendi bastante bien en los cursos anteriores y además con los juegos que había en los comentarios sobre flex.
El shortcut sería "place-self" ya que es la abreviación para "justify-self" (horizontal) y "align-self" (vertical): entonces va "center" + "stretch" (estirar hasta el límite) :3