CSS да флекс элементларининг нол гардишлиги
Агар flex-grow қандайдир элемент учун нолга
тенг бўлса, у ҳолда ушбу элемент бўш жойни
таксимлашишда иштирок этмайди.
Стандарт бўйича гардишлик айнан нол
қийматга эга ва шу сабабдан flex-grow
берилмаган элементлар бўш жойни ўзаро
бўлиша олмайдилар.
Мисол учун бирор ҳисоб-китоб қилайлик. Фараз қилайлик, бизда учта флекс-элемент бор,
ҳар бирининг эни 100px. Биринчи элементда
flex-grow бўлмасин (ёки у 0 га тенг),
иккинчи элементнинг flex-grow 2 га,
учинчисиники эса 3 га тенг бўлсин.
Фараз қилайлик, ота-онанинг эни 500px га тенг.
У ҳолда бўш жой 200px га тенг бўлади, ва flex-grow бирлигига
тушadi. Натижада биринчи
элементнинг эни 200px / 5 = 40px100px да қолади,
чунки у таксимлашда иштирок этмайди,
иккинчининг эни , учинчининг эни эса 100px + 2 * 40px
= 180px бўлади.
100px
+ 3 * 40px = 220px
Амалий машқлар
Қуйидаги барча машқларда сизга эн ва flex-grow га эга бўлган флекс-элементлар билан бир қанча код кўрсатилади. Кўрсатилган код асосида ҳисобланг, ҳар бир элемент қандай ўлчамларга эга бўлади. Сўнгра кодни ишга туширинг ва ҳақиқий энларни ўлчаб, сизнинг ҳисоб-китобларингизни текширинг.
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
</div>
.parent {
display: flex;
width: 500px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 200px;
flex-grow: 0;
}
.elem2 {
width: 100px;
flex-grow: 1;
}
.elem3 {
width: 100px;
flex-grow: 1;
}
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
</div>
.parent {
display: flex;
width: 900px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 300px;
flex-grow: 0;
}
.elem2 {
width: 200px;
flex-grow: 3;
}
.elem3 {
width: 100px;
flex-grow: 2;
}
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
<div class="child elem4">4</div>
</div>
.parent {
display: flex;
width: 700px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 200px;
flex-grow: 0;
}
.elem2 {
width: 200px;
flex-grow: 0;
}
.elem3 {
width: 100px;
flex-grow: 1;
}
.elem4 {
width: 100px;
flex-grow: 1;
}