Rôzna šírka prvkov a stlačiteľnosť flex blokov v CSS
Nech teraz naše prvky majú rôznu šírku. V tomto prípade bude odtrhnutý kúsok úmerný šírke tohto prvku a bude vypočítaný podľa nasledujúceho vzorca: negatívny voľný priestor * (šírka prvku / súčet všetkých šírok prvkov).
Nech máme 4 prvky. Nech
šírka prvého prvku je 400px,
šírka zvyšných prvkov - 200px,
a šírka rodiča 900px.
Celková šírka prvkov je:
400px + 3 * 200px = 1000px
Potom negatívny voľný priestor bude rovný:
1000px - 900px = 100px
Nájdime, koľko sa odtrhne od prvého prvku:
100px * (400px / 1000px) = 40px
To znamená, že jeho šírka bude:
400px - 40px = 360px
Nájdime, koľko od každého zo zvyšných prvkov:
100px * (200px / 1000px) = 20px
To znamená, že šírka týchto prvkov bude:
200px - 20px = 180px
Realizujte popísané bloky a skontrolujte meraním, že šírka prvkov bude naozaj rovná tej, ktorú sme vypočítali.
Vypočítajte šírku blokov a potom skontrolujte výpočty meraním:
<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;
}