АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
205 of 313 menu

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