Свойство flex-shrink
flex-shrink свойстваси,
эркин жой етишмаган ҳолда, flex-контейнер ичидаги
қўшни элементларга нисбатан flex-блок қанчай кичкинайишини
белгилайди.
Масалан, агар flex-контейнер ичидаги барча flex-блоклар
flex-shrink:1 га эга бўлса, улар бир хил
ўлчамда бўлади. Агар улардан бири
flex-shrink:2 га эга бўлса, у барча бошқаларга
нисбатан 2 марта кичкинрок бўлади.
Қўлланиши: алҳида flex блокага.
Бу свойства қисқартирилган свойства бўлган
flex
Propertiesining бир қисми сифатида киритилган.
Синтаксис
селектор {
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 Propertiesining ҳар бир элемент учун
қийматларини ҳисобга олган ҳолдаги элементларнинг
огирликли ўртача эни:
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 Propertiesining қиймати
3 га тенг бўлган учинчи элемент бошқа элементларга
нисбатан кўпроқ кискаради.
Шунингдек қаранг
-
flex-directionсвойстваси,
бу flex блоклар ўқларининг йўналишини белгилайди -
justify-contentсвойстваси,
бу асосий ўқ бўйича текислашни белгилайди -
align-itemsсвойстваси,
бу кўндаланг ўқ бўйича текислашни белгилайди -
flex-wrapсвойстваси,
бу flex блокларнинг кўп қatorлигини белгилайди -
flex-flowсвойстваси,
flex-direction ва flex-wrap учун қисқартирилган Propertiesи -
orderсвойстваси,
бу flex блокларнинг тартибини белгилайди -
align-selfсвойстваси,
бу бир блокнинг текисланишини белгилайди -
flex-basisсвойстваси,
бу алҳида flex блокнинг ўлчамини белгилайди -
flex-growсвойстваси,
бу flex блокларнинг ҳарислигини белгилайди -
flexсвойстваси,
flex-grow, flex-shrink ва flex-basis учун қисқартирилган Propertiesи