⊗mkSpFxSFC 96 of 128 menu

Regulering av kompresjon av flex-blokker i CSS

Som standard blir biter klypet av alle elementer, proporsjonalt med elementets bredde. Imidlertid kan man gjøre det slik at noen elementer får større eller mindre biter klypet av. For dette finnes det en spesiell egenskap flex-shrink.

Denne egenskapen representerer en viss vekt, som elementets bredde vil bli multiplisert med ved beregning av den avklippede biten i henhold til den allerede nevnte formelen. For eksempel, hvis bredden på elementet er 200px, og dets flex-shrink er 3, så vil den veide (dvs. multiplisert med vekt) bredden på elementet blir:

200px * 3 = 600px

Formelen med hensyn til flex-shrink vil ha følgende form: neg. fritt rom * (veid bredde på element / summen av alle veide bredder av elementer).

La oss se på et eksempel. La oss si at vi har 4 elementer. La bredden på det første elementet være 400px, og flex-shrink er 2, bredden på de andre elementene - 200px, og deres flex-shrink er 1. La bredden på forelderen være 900px.

Total bredde på elementene er:

400px + 3 * 200px = 1000px

Negativt fritt rom vil være:

1000px - 900px = 100px

Total veid bredde på elementene er:

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

Den veide bredden til det første elementet er:

400px * 2 = 800px

Følgende bit vil bli klypet av fra det første elementet:

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

Bredden på elementet vil være:

400px - 57.14px = 342.86px ~ 343px

Den veide bredden til hvert av de andre elementene er:

200px * 1 = 200px

Følgende bit vil bli klypet av fra hvert element:

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

Bredden på elementet vil være:

200px - 14.2px = 185.8px ~ 186px

Implementer de beskrevne blokkene og kontroller med måling, at bredden på elementene faktisk er lik den vi har beregnet.

Beregn bredden på blokkene, og kontroller deretter beregningene med måling:

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

Beregn bredden på blokkene, og kontroller deretter beregningene med måling:

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

Beregn bredden på blokkene, og kontroller deretter beregningene med måling:

<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; }
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis