Vlastnost flex-shrink
Vlastnost flex-shrink určuje,
jak moc se flex blok zmenší relativně
k sousedním prvkům uvnitř flex kontejneru
v případě nedostatku volného místa.
Například, pokud všechny flex bloky uvnitř flex kontejneru
mají flex-shrink:1, budou
stejné velikosti. Pokud jeden z nich má
flex-shrink:2, bude 2
krát menší než všechny ostatní.
Platí pro: konkrétní flex blok.
Tato vlastnost je součástí zkratkové vlastnosti
flex.
Syntaxe
selektor {
flex-shrink: kladné číslo;
}
Výchozí hodnota: 1.
Příklad
Předpokládejme, že máme 3 prvky. Šířka každého z nich
je 200px a celková šířka je 600px,
což je více než šířka nadřazeného kontejneru, která
je 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;
}
:
Vypočítejme záporný volný prostor pomocí vzorce:
600px - 350px = 250px
Celková vážená šířka prvků
s ohledem na hodnoty vlastnosti flex-shrink
pro každý prvek bude:
200px * 1 + 200px * 2 + 200px * 3 = 1200px
Nyní určeme, jak moc se zmenší první prvek:
250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px
Druhý prvek:
250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px
Třetí prvek:
250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px
Vychází, že třetí prvek, jehož hodnota
flex-shrink je 3, se zmenší více
než ostatní prvky.
Viz také
-
vlastnost
flex-direction,
která nastavuje směr os flex bloků -
vlastnost
justify-content,
která nastavuje zarovnání podél hlavní osy -
vlastnost
align-items,
která nastavuje zarovnání podél příčné osy -
vlastnost
flex-wrap,
která nastavuje víceřádkovost flex bloků -
vlastnost
flex-flow,
zkratka pro flex-direction a flex-wrap -
vlastnost
order,
která nastavuje pořadí flex bloků -
vlastnost
align-self,
která nastavuje zarovnání jednoho bloku -
vlastnost
flex-basis,
která nastavuje velikost konkrétního flex bloku -
vlastnost
flex-grow,
která nastavuje "růst" flex bloků -
vlastnost
flex,
zkratka pro flex-grow, flex-shrink a flex-basis