Розная шырыня элементаў і сціскальнасць флекс блокаў у 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;
}