Las propiedades flex-grow
, flex-shrink
y flex-basis
sirven para controlar cómo los elementos flexibles individuales (los hijos de un contenedor Flexbox) se dimensionan y gestionan el espacio disponible a lo largo del eje principal del contenedor. Se aplican directamente a los elementos, no al contenedor.
flex-basis
(Base de flexión o tamaño ideal):flex-grow
) o se reste espacio si es necesario (a través de flex-shrink
).px
, em
, %
), o la palabra clave auto
(valor por defecto).auto
, el navegador mira la propiedad width
o height
del ítem (según la flex-direction
) o, si no está definida, el tamaño de su contenido.flex-grow
(Factor de crecimiento):0
, lo que significa que el ítem no crecerá para ocupar el espacio sobrante.flex-grow
. Por ejemplo, un elemento con flex-grow: 2
intentará crecer el doble que un elemento con flex-grow: 1
, si ambos compiten por el mismo espacio extra.flex-shrink
(Factor de encogimiento):flex-basis
(es decir, si el tamaño combinado de los elementos excede el tamaño del contenedor).1
, lo que significa que el ítem puede encogerse si es necesario.flex-shrink
(el cálculo también considera su flex-basis
). Un elemento con flex-shrink: 0
no se encogerá más allá de su tamaño base.Propiedad Abreviada flex:
Estas tres propiedades se pueden (y a menudo se deben) establecer de forma concisa utilizando la propiedad abreviada flex:
flex: <flex-grow> <flex-shrink> <flex-basis>;
flex: 0 1 auto;
(no crece, puede encogerse, tamaño base automático).flex: 1;
: Es un atajo común para flex: 1 1 0%;
(o 0
en algunos contextos). El ítem crece y encoge según sea necesario, partiendo de un tamaño base nulo (distribuye el espacio proporcionalmente).flex: auto;
: Equivale a flex: 1 1 auto;
. El ítem puede crecer y encoger, partiendo de su tamaño base automático.flex: none;
: Equivale a flex: 0 0 auto;
. El ítem no crece ni se encoge; se mantiene en su tamaño base.