⊗mkSpFxSFC 96 of 128 menu

Kontrola sabijanja flex blokova u CSS

Podrazumevano, od svih elemenata se odvajaju parčići, proporcionalno širini elementa. Međutim, moguće je učiniti da se od nekih elemenata odvoje veći ili manji parčići. Za ovo postoji posebno svojstvo flex-shrink.

Ovo svojstvo predstavlja određenu težinu, sa kojom će se množiti širina elementa prilikom izračunavanja parčića koji se odvaja po već navedenoj formuli. Na primer, ako je širina elementa jednaka 200px, a njegov flex-shrink je 3, onda će ponderisana (dakle pomnožena težinom) širina elementa biti jednaka:

200px * 3 = 600px

Formula uzimajući u obzir flex-shrink će izgledati ovako: neg. slobodan prostor * (ponderisana širina elementa / zbir svih ponderisanih širina elemenata).

Pogledajmo na primeru. Neka imamo 4 elementa. Neka je širina prvog elementa 400px, a flex-shrink jednak 2, širina preostalih elemenata - 200px, a njihov flex-shrink je jednak 1. Neka je širina roditelja 900px.

Zbirna širina elemenata je:

400px + 3 * 200px = 1000px

Negativni slobodan prostor biće jednak:

1000px - 900px = 100px

Zbirna ponderisana širina elemenata je:

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

Ponderisana širina prvog elementa je:

400px * 2 = 800px

Od prvog elementa će se odvojiti sledeći parčić:

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

Širina elementa biće jednaka:

400px - 57.14px = 342.86px ~ 343px

Ponderisana širina svakog od preostalih elemenata je:

200px * 1 = 200px

Od svakog elementa će se odvojiti sledeći parčić:

200px * (200px / 1400px) = 200px * 0.1428 = 28.56px / 314.2px

Širina elementa biće jednaka:

200px - 14.2px = 185.8px ~ 186px

Implementirajte opisane blokove i proverite merenjem, da li je širina elemenata zaista jednaka onoj koju smo izračunali.

Izračunajte širinu blokova, a zatim proverite izračune merenjem:

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

Izračunajte širinu blokova, a zatim proverite izračune merenjem:

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

Izračunajte širinu blokova, a zatim proverite izračune merenjem:

<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; }
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij