Savybė flex-shrink
Savybė flex-shrink nustato,
kiek flex-blokas bus sumažinamas, palyginti
su gretimais elementais flex-konteinerio viduje,
jei trūksta laisvos vietos.
Pavyzdžiui, jei visi flex-blokai flex-konteinerio viduje
turi flex-shrink:1, tai jie bus
vienodo dydžio. Jei vienas iš jų turi
flex-shrink:2, tai jis bus 2
kartus mažesnis už visus kitus.
Taikoma: konkrečiam flex blokui.
Ši savybė įeina kaip sudėtinė dalis į trumpąją savybę
flex.
Sintaksė
selektorius {
flex-shrink: teigiamas skaičius;
}
Numatytoji reikšmė: 1.
Pavyzdys
Tarkime, kad turime 3 elementus. Kiekvieno iš jų plotis
yra 200px ir iš viso sudaro 600px,
o tai yra daugiau nei tėvinio konteinerio plotis, kuris
yra 350px:
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem2">3</div>
</div>
.parent {
display: flex;
width: 350px;
height: 200px;
border: 1px solid red;
}
.child {
width: 200px;
height: 50px;
border: 1px solid green;
}
.elem1 {
flex-shrink: 1;
}
.elem2 {
flex-shrink: 2;
}
.elem3 {
flex-shrink: 3;
}
:
Apskaičiuokime neigiamą laisvą erdvę pagal formulę:
600px - 350px = 250px
Bendra svertinė elementų plotis
atsižvelgiant į kiekvieno elemento savybės flex-shrink
reikšmes bus lygi:
200px * 1 + 200px * 2 + 200px * 3 = 1200px
Dabar nustatykime, kiek susitrauks pirmasis elementas:
250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px
Antrasis elementas:
250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px
Trečiasis elementas:
250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px
Pasirodo, trečiasis elementas, kurio reikšmė
flex-shrink yra 3, susitrauks labiau
už kitus elementus.
Taip pat žiūrėkite
-
savybė
flex-direction,
kuri nurodo flex blokų ašių kryptį -
savybė
justify-content,
kuri nurodo lygiavimą pagrindinėje ašyje -
savybė
align-items,
kuri nurodo lygiavimą skersinėje ašyje -
savybė
flex-wrap,
kuri nurodo flex blokų kelių eilučių išdėstymą -
savybė
flex-flow,
santrumpa flex-direction ir flex-wrap -
savybė
order,
kuri nurodo flex blokų tvarką -
savybė
align-self,
kuri nurodo vieno bloko lygiavimą -
savybė
flex-basis,
kuri nurodo konkretaus flex bloko dydį -
savybė
flex-grow,
kuri nurodo flex blokų "godumą" -
savybė
flex,
santrumpa flex-grow, flex-shrink ir flex-basis