204 of 313 menu

Propriedade flex-grow

A propriedade flex-grow define o quanto um bloco flex individual pode ser maior que os elementos adjacentes, se necessário.

Por exemplo, se todos os blocos flex dentro de um contêiner flex têm flex-grow:1, então eles terão o mesmo tamanho. Se um deles tiver flex-grow:2, ele será 2 vezes maior que todos os outros.

Se a largura total dos elementos for menor que a largura do elemento pai, haverá espaço vazio à direita. Se desejar, este espaço vazio pode ser dividido proporcionalmente entre nossos elementos. Isso é feito usando a propriedade flex-grow, aplicada aos elementos flex. O valor desta propriedade é um número adimensional.

Aplica-se a: um bloco flex específico.

Esta propriedade faz parte da propriedade abreviada flex.

Sintaxe

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

Valor padrão: 0.

Exemplo

Agora temos dois blocos flex com largura de 100px. Sua largura total é de 200px, e a largura do elemento pai é de 300px. Isso significa que sobra um espaço livre de 100px.

Se os elementos não tiverem flex-grow definido, simplesmente veremos este espaço livre. Se estiver definido, a largura real dos elementos será maior que a definida - eles dividirão proporcionalmente o espaço livre entre si e o adicionarão à sua largura.

Por exemplo, digamos que o primeiro elemento tenha flex-grow igual a 1, e o segundo - 3. Vamos calcular que parte do espaço livre cada elemento receberá.

Primeiro, precisamos obter a quantidade total de unidades de flex-grow de todos os nossos elementos. No primeiro elemento é 1, e no segundo - 3. Isso significa que a soma é 4.

Agora, vamos dividir 100px de espaço livre por 4 e obter que 25px correspondem a uma unidade de flex-grow. Isso significa que o primeiro elemento receberá uma unidade de flex-grow, ou seja, 25px, e o segundo - três unidades, ou seja, 75px.

A largura do primeiro elemento será 125px, e a do 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; }

:

Exemplo

Suponha que a largura do elemento pai seja 400px, a largura do primeiro elemento seja 200px, e a largura do segundo elemento - 100px. Isso significa que o espaço livre novamente é igual a 100px.

Vamos definir flex-grow para cada elemento como 1. A soma será 2, ou seja, 100px de espaço livre precisa ser dividido por 2. Isso significa que 50px correspondem a uma unidade de ganância.

Como todos os elementos têm o mesmo valor de flex-grow, todos receberão o mesmo valor de 50px. Isso significa que o primeiro elemento se tornará 250px, e o segundo se tornará 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; }

:

Exemplo

Suponha novamente que a largura do elemento pai seja 400px, a largura do primeiro elemento seja 200px, e a largura do segundo elemento - 100px.

Agora, vamos definir para o primeiro elemento flex-grow como 3, e para o segundo - como 1. A soma da ganância será 4. Então, uma unidade de ganância é igual a 100px / 4 = 25px.

O primeiro elemento receberá 75px, e se tornará 275px, e o segundo - 25px, tornando-se 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; }

:

Veja também

  • a propriedade flex-direction,
    que define a direção dos eixos dos blocos flex
  • a propriedade justify-content,
    que define o alinhamento ao longo do eixo principal
  • a propriedade align-items,
    que define o alinhamento ao longo do eixo transversal
  • a propriedade flex-wrap,
    que define a quebra de linha dos blocos flex
  • a propriedade flex-flow,
    abreviação para flex-direction e flex-wrap
  • a propriedade order,
    que define a ordem dos blocos flex
  • a propriedade align-self,
    que define o alinhamento de um bloco individual
  • a propriedade flex-basis,
    que define o tamanho de um bloco flex específico
  • a propriedade flex-shrink,
    que define a compressibilidade dos blocos flex
  • a propriedade flex,
    abreviação para flex-grow, flex-shrink e flex-basis
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar