FlexBox es un contenedor que organiza los elementos en una sola dirección. Puede cambiar el tamaño, ajustar, alinear y distribuir el espacio entre los elementos para completar de forma óptima el espacio disponible. Es un diseño útil para elementos de diferentes tamaños y para cambiar el tamaño de los elementos cuando cambia el espacio disponible.
Con FlexBox, puedes hacer lo siguiente:
- Controla cómo los elementos crecen y se reducen para llenar el espacio disponible
- Ajusta los elementos en filas o columnas nuevas cuando no haya suficiente espacio para ellos.
- Distribuye el espacio adicional entre los elementos con ajustes predeterminados convenientes
Cuándo usar Flexbox
Por lo general, FlexBox se usa para mostrar una pequeña cantidad de elementos dentro de un diseño general de la pantalla. Para un diseño general de la pantalla, Grid suele ser una mejor opción. FlexBox no admite la carga diferida de elementos. Para mostrar una gran cantidad de elementos, usa listas y cuadrículas diferidas. Si necesitas ajustar elementos, usa FlexBox en lugar de FlowRow y FlowColumn.
Terminología y conceptos
FlexBox organiza sus elementos en líneas horizontales o verticales. La dirección de estas líneas establece el eje principal. El eje que se encuentra a 90 grados del eje principal es el eje cruzado. La longitud de FlexBox a lo largo del eje principal se conoce como tamaño principal. La longitud del eje transversal correspondiente se conoce como tamaño transversal. Estos tamaños y ejes forman la base del comportamiento de FlexBox.
FlexBox es Row.
FlexBox es Column.Cómo aplicar propiedades
Puedes aplicar propiedades de FlexBox de dos maneras:
- Al contenedor
FlexBoxconFlexBox(config) - A un elemento dentro de
FlexBoxconModifier.flex
Propiedades del contenedor ( |
Propiedades del elemento ( |
|---|---|
Consulta Cómo establecer el comportamiento del contenedor para obtener más información sobre estas propiedades. |
Consulta Cómo establecer el comportamiento de los elementos para obtener más información sobre estas propiedades. |
Información sobre el algoritmo de diseño FlexBox
Una de las características más poderosas de FlexBox es su capacidad para cambiar el tamaño de sus elementos secundarios para que se ajusten mejor al espacio disponible. Comprender cómo lo hace FlexBox puede ayudarte a establecer propiedades de FlexBox para optimizar tu IU para todos los tamaños posibles.
El algoritmo de diseño de FlexBox funciona de la siguiente manera:
Calcular el tamaño base del elemento secundario: Usa el valor
basisdel elemento secundario para calcular su tamaño inicial a lo largo del eje principal antes de que se distribuya cualquier espacio adicional.Ordenar los elementos secundarios: Ordena los elementos secundarios según sus valores de
order, si están presentes.Líneas de compilación: Para cada elemento secundario, verifica si su tamaño inicial más
gapcaben en el espacio restante de la línea actual. Si es así, coloca a este niño o niña en la fila. De lo contrario, colócalo en una línea nueva si el ajuste está habilitado, o bien colócalo en la línea actual, donde se desbordará (quedará parcialmente oculto por el borde del contenedor).Alinear o cambiar el tamaño de los elementos en el eje principal: Para cada línea, distribuye el espacio adicional entre los elementos o hacia ellos cambiando su tamaño o alineándolos.
Alinear o cambiar el tamaño de los elementos en el eje transversal: Para cada línea, distribuye el espacio adicional entre los elementos y las líneas o entre ellos estirándolos o alineándolos.
Ahora que conoces los conceptos de FlexBox, consulta Cómo comenzar para crear un FlexBox básico.