Уласцівасць 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