⊗mkSpFxZG 87 of 128 menu

Ganância zero de elementos flex em CSS

Se flex-grow for igual a zero para algum elemento, então esse elemento não participará da distribuição do espaço livre. Por padrão, a ganância tem justamente valor zero e, portanto, elementos sem flex-grow definido não dividem o espaço livre entre si.

Vamos fazer um cálculo como exemplo. Suponha que temos três elementos flex, cada um com largura de 100px. Suponha que o primeiro elemento não tenha flex-grow (ou seja igual a 0), o segundo elemento tenha flex-grow igual a 2, e o terceiro - igual a 3.

Suponha que a largura do pai seja 500px. Então o espaço livre será igual a 200px, e para uma unidade de flex-grow caberá 200px / 5 = 40px. Resultará que a largura do primeiro elemento permanecerá 100px, pois ele não participa da distribuição, a largura do segundo será 100px + 2 * 40px = 180px, e a largura do terceiro - 100px + 3 * 40px = 220px.

Tarefas práticas

Em todas as tarefas abaixo, você verá algum código com elementos flex, tendo largura e flex-grow. Com base no código apresentado, calcule quais dimensões cada um dos elementos terá. Em seguida, execute o código e verifique seus cálculos, medindo as larguras reais dos elementos.

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> </div> .parent { display: flex; width: 500px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 0; } .elem2 { width: 100px; flex-grow: 1; } .elem3 { width: 100px; flex-grow: 1; }
<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> </div> .parent { display: flex; width: 900px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 300px; flex-grow: 0; } .elem2 { width: 200px; flex-grow: 3; } .elem3 { width: 100px; flex-grow: 2; }
<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> <div class="child elem4">4</div> </div> .parent { display: flex; width: 700px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 0; } .elem2 { width: 200px; flex-grow: 0; } .elem3 { width: 100px; flex-grow: 1; } .elem4 { width: 100px; flex-grow: 1; }
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