Vlastnosť flex-shrink
Vlastnosť flex-shrink určuje,
ako veľmi sa flex blok zmenší v porovnaní
s priľahlými prvkami vo flex kontajnere
v prípade nedostatku voľného miesta.
Napríklad, ak všetky flex bloky vo flex kontajneri
majú flex-shrink:1, budú mať
rovnakú veľkosť. Ak jeden z nich má
flex-shrink:2, bude 2
krát menší ako všetky ostatné.
Platí pre: konkrétny flex blok.
Táto vlastnosť je súčasťou skrátenej vlastnosti
flex.
Syntax
selektor {
flex-shrink: kladné číslo;
}
Predvolená hodnota: 1.
Príklad
Majme 3 prvky. Šírka každého z nich
je 200px a celkovo je to 600px,
čo je viac ako šírka nadradeného kontajnera, ktorá
je 350px:
<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: 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čítajme záporný voľný priestor podľa vzorca:
600px - 350px = 250px
Súčet vážených šírok prvkov
s prihliadnutím na hodnoty vlastnosti flex-shrink
pre každý prvok bude:
200px * 1 + 200px * 2 + 200px * 3 = 1200px
Teraz určme, ako sa zmenší prvý prvok:
250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px
Druhý prvok:
250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px
Tretí prvok:
250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px
Vychádza, že tretí prvok, ktorého hodnota
flex-shrink je 3, sa zmenší viac
ako ostatné prvky.
Pozri tiež
-
vlastnosť
flex-direction,
ktorá nastavuje smer osí flex blokov -
vlastnosť
justify-content,
ktorá nastavuje zarovnanie pozdĺž hlavnej osi -
vlastnosť
align-items,
ktorá nastavuje zarovnanie pozdĺž priečnej osi -
vlastnosť
flex-wrap,
ktorá nastavuje viacriadkovosť flex blokov -
vlastnosť
flex-flow,
skrátenie pre flex-direction a flex-wrap -
vlastnosť
order,
ktorá nastavuje poradie flex blokov -
vlastnosť
align-self,
ktorá nastavuje zarovnanie jedného bloku -
vlastnosť
flex-basis,
ktorá nastavuje veľkosť konkrétneho flex bloku -
vlastnosť
flex-grow,
ktorá nastavuje "lakomosť" flex blokov -
vlastnosť
flex,
skrátenie pre flex-grow, flex-shrink a flex-basis