Larghezze diverse degli elementi e comprimibilità dei blocchi flex in CSS
Supponiamo ora che i nostri elementi abbiano larghezze diverse. In questo caso, la parte sottratta sarà proporzionale alla larghezza di quell'elemento e sarà calcolata con la seguente formula: spazio libero negativo * (larghezza elemento / somma di tutte le larghezze degli elementi).
Supponiamo di avere 4 elementi. Sia
la larghezza del primo elemento pari a 400px,
la larghezza degli elementi rimanenti - 200px,
e la larghezza del genitore 900px.
La larghezza totale degli elementi è:
400px + 3 * 200px = 1000px
Allora lo spazio libero negativo sarà pari a:
1000px - 900px = 100px
Troviamo quanto verrà sottratto dal primo elemento:
100px * (400px / 1000px) = 40px
Cioè la sua larghezza sarà:
400px - 40px = 360px
Troviamo quanto da ciascuno degli altri elementi:
100px * (200px / 1000px) = 20px
Cioè la larghezza di questi elementi sarà:
200px - 20px = 180px
Implementa i blocchi descritti e verifica con la misurazione che la larghezza degli elementi sia effettivamente uguale a quella da noi calcolata.
Calcola la larghezza dei blocchi, poi verifica i calcoli con la misurazione:
<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;
}