Розная шырыня элементаў і сціскальнасць флекс блокаў у CSS
Хай цяпер нашы элементы маюць розную шырыню. У гэтым выпадку адшчэпліваемы кавалачак будзе прапарцыянальны шырыні гэтага элемента і будзе вылічэцца па наступнай формуле: адмоўная свабодная прастора * (шырыня элемента / сума ўсіх шырынь элементаў).
Хай у нас ёсць 4 элемента. Хай
шырыня першага элемента роўная 400px,
шырыня астатніх элементаў - 200px,
а шырыня бацькі 900px.
Сумарная шырыня элементаў роўная:
400px + 3 * 200px = 1000px
Тады адмоўная свабодная прастора будзе роўная:
1000px - 900px = 100px
Знайдзем колькі адшчэпліцца ад першага элемента:
100px * (400px / 1000px) = 40px
Гэта значыць яго шырыня будзе роўная:
400px - 40px = 360px
Знайдзем колькі ад кожнага з астатніх элементаў:
100px * (200px / 1000px) = 20px
Гэта значыць шырыня гэтых элементаў будзе роўная:
200px - 20px = 180px
Рэалізуйце апісаныя блокі і праверце вымярэннем, што шырыня элементаў будзе сапраўды роўная разлічанай намі.
Разлічыце шырыню блокаў, а затым праверце разлікі вымярэннем:
<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;
}