Уласцівасць flex-shrink
Уласцівасць flex-shrink вызначае тое,
наколькі flex-блок будзе памяншацца адносна
суседніх элементаў унутры flex-кантэйнера
ў выпадку недахопу свабоднага месца.
Напрыклад, калі ўсе flex-блокі ўнутры flex-кантэйнера
маюць flex-shrink:1, то яны будуць
аднолькавага памеру. Калі адзін з іх мае
flex-shrink:2, то ён будзе ў 2
разы менш, чым усе астатнія.
Ужываецца да: канкрэтнага flex блока.
Даная ўласцівасць уваходзіць як складовая частка ў уласцівасць-скарачэнне
flex.
Сінтаксіс
селектар {
flex-shrink: дадатныя лікі;
}
Значэнне па змаўчанні: 1.
Прыклад
Няхай у нас ёсць 3 элемента. Шырыня кожнага з іх
складае 200px і сумарна роўная 600px,
што больш за шырыню бацькоўскага кантэйнера, якая
роўная 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;
}
:
Давайце разлічым адмоўную свабодную прастору па формуле:
600px - 350px = 250px
Сумарная ўзважаная шырыня элементаў
з улікам значэнняў уласцівасці flex-shrink
для кожнага элемента будзе роўная:
200px * 1 + 200px * 2 + 200px * 3 = 1200px
Цяпер вызначым наколькі скараціцца першы элемент:
250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px
Другі элемент:
250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px
Трэці элемент:
250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px
Выходзіць, што трэці элемент, у якога значэнне
flex-shrink роўнае 3 скараціцца больш
за іншыя элементы.
Глядзіце таксама
-
уласцівасць
flex-direction,
якое задае кірунак восей flex блокаў -
уласцівасць
justify-content,
якое задае выраўноўванне па галоўнай восі -
уласцівасць
align-items,
якое задае выраўноўванне па папярочнай восі -
уласцівасць
flex-wrap,
якое шматрадковасць flex блокаў -
уласцівасць
flex-flow,
скарачэнне для flex-direction і flex-wrap -
уласцівасць
order,
якое задае парадак flex блокаў -
уласцівасць
align-self,
якое задае выраўноўванне аднаго блока -
уласцівасць
flex-basis,
якое задае памер канкрэтнага flex блока -
уласцівасць
flex-grow,
якое задае прагавітасць flex блокаў -
уласцівасць
flex,
скарачэнне для flex-grow, flex-shrink і flex-basis