Својство flex-shrink

Својство flex-shrink одређује то, колико ће се flex-блок смањити у односу на суседне елементе унутар flex-контејнера у случају недостатка слободног простора.

На пример, ако сви flex-блокови унутар flex-контејнера имају flex-shrink:1, онда ће они бити једнаке величине. Ако један од њих има flex-shrink:2, онда ће бити 2 пута мањи од свих осталих.

Примењује се на: конкретан flex блок.

Ово својство улази као саставни део у скраћеницу својства flex.

Синтакса

cssселектор {
  flex-shrink: позитиван број;
}

Подразумевана вредност: 1.

Пример

Претпоставимо да имамо 3 елемента. Ширина сваког од њих износи 200px и укупно једнака је 600px, што је више од ширине родитељског контејнера, која једнака је 350px:

html<div class="parent">
  <div class="child elem1">1</div>
  <div class="child elem2">2</div>
  <div class="child elem3">3</div>
</div>
css.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