Različita širina elemenata i sabijanje fleks blokova u CSS-u
Neka sada naši elementi imaju različitu širinu. U ovom slučaju, isečeni deo će biti proporcionalan širini tog elementa i biće izračunat po sledećoj formuli: negativni slobodni prostor * (širina elementa / zbir svih širina elemenata).
Neka imamo 4 elementa. Neka
širina prvog elementa bude 400px,
širina ostalih elemenata - 200px,
a širina roditelja 900px.
Ukupna širina elemenata je:
400px + 3 * 200px = 1000px
Tada će negativni slobodni prostor biti jednak:
1000px - 900px = 100px
Nađimo koliko će se odvojiti od prvog elementa:
100px * (400px / 1000px) = 40px
To jest, njegova širina će biti:
400px - 40px = 360px
Nađimo koliko od svakog od preostalih elemenata:
100px * (200px / 1000px) = 20px
To jest, širina ovih elemenata će biti:
200px - 20px = 180px
Implementirajte opisane blokove i proverite merenjem, da li će širina elemenata zaista biti jednaka onoj koju smo izračunali.
Izračunajte širinu blokova, a zatim proverite izračune merenjem:
<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: 300px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 300px;
}
.elem2 {
width: 100px;
}
.elem3 {
width: 100px;
}