⊗mkSpFxSFC 96 of 128 menu

Regulamento da compressão de blocos flex em CSS

Por padrão, pedaços são "beliscados" de todos os elementos, proporcionalmente à largura do elemento. No entanto, é possível fazer com que de alguns elementos sejam "beliscados" pedaços maiores ou menores. Para isso, existe uma propriedade especial flex-shrink.

Esta propriedade representa um certo peso, pelo qual a largura do elemento será multiplicada ao calcular o pedaço a ser "beliscado" pela fórmula já mencionada acima. Por exemplo, se a largura do elemento for 200px, e seu flex-shrink for 3, então a largura ponderada (ou seja, multiplicada pelo peso) do elemento será:

200px * 3 = 600px

A fórmula considerando o flex-shrink terá a seguinte aparência: espaço livre negativo * (largura ponderada do elemento / soma de todas as larguras ponderadas dos elementos).

Vamos ver um exemplo. Suponha que temos 4 elementos. Deixe a largura do primeiro elemento ser 400px, e o flex-shrink ser 2; a largura dos demais elementos - 200px, e seu flex-shrink ser 1. Deixe a largura do pai ser 900px.

A largura total dos elementos é:

400px + 3 * 200px = 1000px

O espaço livre negativo será:

1000px - 900px = 100px

A largura ponderada total dos elementos é:

400px * 2 + 200px * 1 + 200px * 1 + 200px * 1 = 1400px

A largura ponderada do primeiro elemento é:

400px * 2 = 800px

O seguinte pedaço será "beliscado" do primeiro elemento:

100px * (800px / 1400px) = 100px * 0.57 = 57.14px

A largura do elemento será:

400px - 57.14px = 342.86px ~ 343px

A largura ponderada de cada um dos outros elementos é:

200px * 1 = 200px

O seguinte pedaço será "beliscado" de cada elemento:

100px * (200px / 1400px) = 100px * 0.1428 = 14.28px ~ 14.2px

A largura do elemento será:

200px - 14.2px = 185.8px ~ 186px

Implemente os blocos descritos e verifique por medição que a largura dos elementos será realmente igual à que calculamos.

Calcule a largura dos blocos e depois verifique os cálculos por medição:

<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: 200px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-shrink: 2; } .elem2 { width: 100px; flex-shrink: 1; } .elem3 { width: 100px; flex-shrink: 1; }

Calcule a largura dos blocos e depois verifique os cálculos por medição:

<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: 200px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-shrink: 3; } .elem2 { width: 100px; flex-shrink: 2; } .elem3 { width: 100px; flex-shrink: 1; }

Calcule a largura dos blocos e depois verifique os cálculos por medição:

<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: 500px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 300px; flex-shrink: 3; } .elem2 { width: 200px; flex-shrink: 2; } .elem3 { width: 200px; flex-shrink: 1; } .elem4 { width: 200px; flex-shrink: 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