204 of 313 menu

Propiedad flex-grow

La propiedad flex-grow determina cuánto puede ser un bloque flex individual más grande que los elementos adyacentes, si es necesario.

Por ejemplo, si todos los bloques flex dentro de un contenedor flex tienen flex-grow:1, entonces tendrán el mismo tamaño. Si uno de ellos tiene flex-grow:2, será 2 veces más grande que todos los demás.

Si el ancho total de los elementos es menor que el ancho del padre, por lo tanto queda espacio vacío a la derecha. Si se desea, este espacio vacío se puede dividir proporcionalmente entre nuestros elementos. Esto se hace usando la propiedad flex-grow, establecida en los elementos flex. El valor de esta propiedad es un número adimensional.

Se aplica a: un bloque flex específico.

Esta propiedad forma parte como componente de la propiedad abreviada flex.

Sintaxis

selector { flex-grow: número positivo; }

Valor por defecto: 0.

Ejemplo

Ahora tenemos dos bloques flex con un ancho de 100px. Su ancho total es de 200px, y el ancho del padre es de 300px. Resulta que queda un espacio libre de 100px.

Si a los elementos no se les asigna flex-grow, simplemente veremos este espacio libre. Pero si se les asigna, entonces el ancho real de los elementos será mayor que el establecido - ellos proporcionalmente dividirán el espacio libre entre sí y lo agregarán a su ancho.

Por ejemplo, digamos que el primer elemento tiene un flex-grow igual a 1, y el segundo - 3. Calculemos qué parte del espacio libre recibirá cada elemento.

Primero necesitamos obtener la cantidad total de unidades de flex-grow de todos nuestros elementos. El primer elemento tiene 1, y el segundo - 3. Esto significa que en total es igual a 4.

Ahora dividamos los 100px de espacio libre entre 4 y obtendremos que 25px corresponde a una unidad de flex-grow. Resultará que al primer elemento se le agregará una unidad de flex-grow, es decir 25px, y al segundo - tres unidades, es decir 75px.

El ancho del primer elemento será de 125px, y el del segundo - 175px:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 300px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 3; }

:

Ejemplo

Digamos que ahora el ancho del padre es de 400px, el ancho del primer elemento es de 200px, y el ancho del segundo elemento - 100px. Resulta, que el espacio libre nuevamente es igual a 100px.

Asignemos a cada elemento un flex-grow, igual a 1. En total será 2, es decir, los 100px de espacio libre necesitan dividirse entre 2. Resultará que 50px corresponde a una unidad de codicia.

Como todos los elementos tienen el mismo valor de flex-grow, entonces a todos los elementos se agregará el mismo valor de 50px. Esto significa que el primer elemento se convertirá en 250px, y el segundo se convertirá en 150px:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 1; }

:

Ejemplo

Digamos que nuevamente el ancho del padre es de 400px, el ancho del primer elemento es de 200px, y el ancho del segundo elemento - 100px.

Ahora establezcamos para el primer elemento flex-grow con un valor de 3, y para el segundo - con un valor de 1. Resultará que la codicia total es igual a 4. Entonces una unidad de codicia es igual a 100px / 4 = 25px.

Al primer elemento se agregarán 75px, y se convertirá en 275px, y al segundo - 25px, se convertirá en 125px:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 3; } .elem2 { width: 100px; flex-grow: 1; }

:

Véase también

  • propiedad flex-direction,
    que establece la dirección de los ejes de los bloques flex
  • propiedad justify-content,
    que establece la alineación a lo largo del eje principal
  • propiedad align-items,
    que establece la alineación a lo largo del eje transversal
  • propiedad flex-wrap,
    que establece la multibanda de los bloques flex
  • propiedad flex-flow,
    abreviatura para flex-direction y flex-wrap
  • propiedad order,
    que establece el orden de los bloques flex
  • propiedad align-self,
    que establece la alineación de un bloque
  • propiedad flex-basis,
    que establece el tamaño de un bloque flex específico
  • propiedad flex-shrink,
    que establece la compresibilidad de los bloques flex
  • propiedad flex,
    abreviatura para flex-grow, flex-shrink y flex-basis
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar