Flebox - Grid
Flebox - Grid
Requiere de dos elementos padres e hijos y al poner la propiedad display: flex, ese elemento se
vuelve Flex-Container y sus hijos directos Flex-Items.
Flex Container:
1. Display: Flex Los elementos uno al lado del otro, respecto a su eje principal
horizontalmente (Main Axis).
Display: inline-flex Hace que el flex-container se comporte como un elemento inline.
2. Flex-direction: Determina la dirección del Main Axis.
Propiedades:
1. Row (Fila).
2. Row-reverse (Invierte las filas).
3. Column (Columna).
4. column-reverse (Invierte las columnas).
3. Flex-wrap: Indica si los Flex-items se van alinear en 1 o más líneas.
Propiedades:
1. nowrap (Valor predeterminado).
2. wrap (Si no hay espacio para el siguiente elemento, salta a la siguiente
línea).
3. wrap-reverse (Invierte las líneas en el eje secundario, no los items).
Nota: Funciona a nivel de líneas, no de ítems.
4. Flex-Flow(acortador): flex-direction - flex-wrap.
Alineación:
1.Alineación de items.
Justify-Content: Alinea los ítems en el eje principal (Main Axis).
2.Alineación de línea.
Align-content: Alinea las líneas en el eje secundario, no los ítems.
1. Flex-start.
2. Flex-end.
3. Center.
4. Space-between.
5. Space-around.
6. Space-evenly.
7. Strech (Predeterminado).
Flex Ítems:
Los Flex-ítems, con position: absolute/fixed no participan del flujo, porque pierden
su posición en el flujo.
Calcular: Ejemplo
GRID
Concepto:
Layout (Esqueleto): Es la geometría que calcula el navegador para saber dónde
colocar cada elemento y que tanto separarlo de los demás.
CSS Grid: Permite construir y organizar elementos del layout a través de dos
ejes. (Horizontal y Vertical)
o No importa la posición de un elemento en el código HTML para
construir el layout.
o Al igual que FlexBox, requiere una relación de padre (Grid-
container) e hijos (Grid-items).
Terminología y elementos:
Grid-container:
o display: grid (elemento de bloque).
o display: inline-grid (elemento de línea).
Grid-items:
o Hijos directos.
o Pseudoelementos (before y after).
o Texto.
Grid-lines:
o Se encuentran a los lados de los tracks, izquierda y derecha para
columnas, arriba y abajo para filas.
Grid-cells:
o Intersección entre una fila y una columna.
Grid-áreas:
o Cualquier área rectangular delimitada por 4 grid-lines.
Definir tracks:
o Tipos de grid:
Grid implícito.
Grid explicito. NOTA: 1fr == 25%
o Tipos de tracks:
Fijos.
Flexibles.
Posicionar grid-items:
grid-template-rows: repeat (4, 1fr); Crea 4 filas de 1fr cada una del mismo tamaño.
Sucede que los fr no pueden minimizarse más de lo que mide el contenido, por eso los
tamaños son variables en cada item.
Nota: Los gaps no son flexibles, si fue declarado con el valor 1em, siempre respetará
ese valor.
Grid Áreas:
Nos permite definir áreas dentro de GRID,
Para definir áreas, usaremos lo siguiente.
Grid-area, se puede usar como shorhand de grid-
column y grid-rows.
Alinear Items:
Los items automáticamente ocupan todo el espacio posible en el track.
Todos los items se alinean respecto al track que le corresponde.
Justify-items: Esta propiedad alinea los items en el eje X, se aplica al contenedor padre
de los items.
Justify-self: Se aplica directamente al item (al hijo que se desea alinear), cumple la
misma función que justify-items.
Align-items: Esta propiedad alinea los items en el eje Y, se aplica directo al contenedor
padre.
Align-self: Se aplica directamente al item (al hijo que se desea alinear), cumple la
misma función que align-items.
Alineación con margin:
La alineación estándar es con las propiedades anteriores, sin embargo, también es posible
alinear items con la propiedad margin en su valor auto.
Alinear tracks:
Los tracks pueden ser alineados respecto al contenedor padre con las siguientes propiedades:
Nota: Se debe recordar que los tracks son ficticios/abstractos (no están en el DOM), solo
indican como se deben organizar los items.
Grid placement:
grid-auto-flow: Es una propiedad de CSS Grid que es utilizada para indicar el sentido
en el que se posicionan los items (hijos) en el grid.
Valores:
o row (Por defecto).
o Column (Pone los items en columnas, en dado caso no estén definidas crea unas
columnas ficticias)
grid-auto-rows: Esta propiedad indica que en caso de que se creen nuevas filas
implícitas, tengan un ancho definido para que no estén apretadas.