4. Flex-grow

Flex-grow es la propiedad que permite que los flex-item crezcan.

De manera predeterminada los flex-item miden lo que puede medir según su contenido

Ejemplo 1

En este ejemplo podemos ver que los flex-item, por defecto, se adaptan al contenido que tienen ya que su flex grow por defecto es 0 flex-grow:0

1
DOS
3
CUATRO
5

Ejemplo 1.1

En este ejemplo ponemos flex-grow:1 a los flex-item y estos ocupan todo el ancho disponible posible. Todo el ancho posible es la parte turquesa del container.

flex-grow indica el factor de crecimiento. El navegador divide el espacio disponible entre la cantidad de factores de crecimiento y se lo asigna a los items. Es decir si el espacio disponible son 100px lo que hace es divide 100/5 y añade 20 más al total del item

1
DOS
3
CUATRO
5

En el siguiente ejemplo se ha aplicado un flex-grow:1 a los items 1, 3, 4 y 5 y un flex-grow:4 al 2.

Ejemplo 1.2

1
DOS
3
CUATRO
5

El navegador lo que hace es sumar todos los valores de flex-grow para calcular el factor de crecimiento

Por lo tanto suponiendo que el espacio disponible fuese 100, el navegador divide 100 / 8 = 12,5

Teniendo el factor de crecimiento (12,5) el navegador lo multiplica por el valor de flex-grow en cada item (8) y lo suma:

Por lo tanto el resultado de cada Item es lo que se le suma a su tamaño inicial para así llenar todo el espacio disponible.