⊗mkSpFxSFC 96 of 128 menu

Regolazione della compressione dei blocchi flex in CSS

Per impostazione predefinita, da tutti gli elementi vengono "pizzicati" pezzi proporzionali alla larghezza dell'elemento. Tuttavia, è possibile fare in modo che da alcuni elementi vengano pizzicati pezzi più grandi o più piccoli. A questo scopo esiste una proprietà speciale flex-shrink.

Questa proprietà rappresenta un certo peso, per il quale verrà moltiplicata la larghezza dell'elemento nel calcolo del pezzo da pizzicare secondo la formula già vista sopra. Ad esempio, se la larghezza di un elemento è 200px, e il suo flex-shrink è 3, allora la larghezza ponderata (cioè moltiplicata per il peso) dell'elemento risulterà:

200px * 3 = 600px

La formula che tiene conto di flex-shrink avrà la seguente forma: spazio libero negativo * (larghezza ponderata dell'elemento / somma di tutte le larghezze ponderate degli elementi).

Vediamo un esempio. Supponiamo di avere 4 elementi. Lascia che la larghezza del primo elemento sia 400px, e flex-shrink sia 2, la larghezza degli altri elementi - 200px, e il loro flex-shrink sia 1. Lascia che la larghezza del genitore sia 900px.

La larghezza totale degli elementi è:

400px + 3 * 200px = 1000px

Lo spazio libero negativo sarà:

1000px - 900px = 100px

La larghezza ponderata totale degli elementi è:

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

La larghezza ponderata del primo elemento è:

400px * 2 = 800px

Dal primo elemento verrà pizzicato il seguente pezzo:

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

La larghezza dell'elemento sarà:

400px - 57.14px = 342.86px ~ 343px

La larghezza ponderata di ciascuno degli altri elementi è:

200px * 1 = 200px

Da ciascun elemento verrà pizzicato il seguente pezzo:

100px * (200px / 1400px) = 100px * 0.142 = 14.2px

La larghezza di ogni elemento sarà:

200px - 14.2px = 185.8px ~ 186px

Implementa i blocchi descritti e verifica con la misurazione che la larghezza degli elementi sia effettivamente uguale a quella da noi calcolata.

Calcola la larghezza dei blocchi, quindi verifica i calcoli con la misurazione:

<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; }

Calcola la larghezza dei blocchi, quindi verifica i calcoli con la misurazione:

<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; }

Calcola la larghezza dei blocchi, quindi verifica i calcoli con la misurazione:

<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; }
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta