Rritja Zero e Elementeve Flex në CSS
Nëse flex-grow është zero për një element,
atëherë ai element nuk do të marrë pjesë
në shpërndarjen e hapësirës së lirë.
Si parazgjedhje, flex-grow ka vlerën zero
dhe prandaj elementët pa flex-grow të caktuar
nuk e ndajnë hapësirën e lirë mes vete.
Le të bëjmë një llogaritje si shembull.
Le të themi se kemi tre elementë flex,
secili me gjerësi 100px. Le të themi se elementi
i parë nuk ka flex-grow (ose është
0), elementi i dytë ka flex-grow
të barabartë me 2, dhe i treti - 3.
Le të themi se gjerësia e prindit është 500px.
Atëherë hapësira e lirë do të jetë
200px, dhe për një njësi flex-grow
do të ketë . Do të rezultojë se gjerësia
e elementit të parë do të mbetet 200px / 5 = 40px100px,
pasi ai nuk merr pjesë në shpërndarje,
gjerësia e të dytit do të jetë , dhe gjerësia e të tretit - 100px + 2 * 40px
= 180px.
100px
+ 3 * 40px = 220px
Detyra praktike
Në të gjitha detyrat e mëposhtme, do t'ju paraqitet
disa kod me elementë flex që kanë
gjerësi dhe flex-grow. Bazuar në kodin e paraqitur,
llogaritni çfarë përmasash do të ketë
secili element. Pastaj ekzekutoni kodin
dhe kontrolloni llogaritjet tuaja, duke matur gjerësitë
reale të elementeve.
<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;
}