CSS da Fleks Elementlarning Nol Ochko'zligi
Agar flex-grow qaysidir element uchun nolga
teng bo'lsa, u holda bu element bo'sh joyni
taqsimlashda ishtirok etmaydi.
Standart holda ochko'zlik aynan nol
qiymatga ega va shuning uchun flex-grow
berilmagan elementlar o'rtasida bo'sh joy
taqsimlanmaydi.
Misol uchun keling, biror hisob-kitobni amalga oshiramiz.
Faraz qilaylik, bizda uchta fleks-element bor,
har birining kengligi 100px. Birinchi
elementda flex-grow bo'lmasin (yoki u
0 ga teng), ikkinchi elementda flex-grow
2 ga teng, uchinchisida esa 3 ga teng.
Faraz qilaylik, ota-onaning kengligi 500px ga teng.
U holda bo'sh joy teng bo'ladi
200px, va flex-grow birligiga
to'g'ri keladi. Natijada, birinchi elementning
kengligi 200px / 5 = 40px100px bo'lib qoladi,
chunki u taqsimotda ishtirok etmaydi,
ikkinchisining kengligi bo'ladi, uchinchisining kengligi esa 100px + 2 * 40px
= 180px bo'ladi.
100px
+ 3 * 40px = 220px
Amaliy vazifalar
Quyidagi barcha vazifalarda sizga kenglik va
flex-grow ga ega bo'lgan fleks-elementlar
bilan kod taqdim etiladi. Taqdim etilgan
kod asosida har bir element qanday o'lchamlarga
ega bo'lishini hisoblang. Keyin kodni ishga tushiring
va elementlarning haqiqiy kengliklarini o'lchab,
hisoblaringizni tekshiring.
<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;
}