Почему, когда элементу, который находится внутри flex-элемента, ставишь margin в % сам flex-элемент не расширяется, а если ставить margin в px, то flex-элемент расширяется.
Процентное значение вычисляется относительно ширины родительского элемента.
Рассмотрим на примере inline-flex:
Первоначально контейнер .div--0 имеет Ширину определенную контентом.
Потом от этой Ширины вычисляется margin который и добавляется .div--1, при этом ширина родителя не измена, т.к. есть привязка к ней.
В случаи .div--2 пиксельное значение не привязано к родителю, что позволяет расширять родительский контейнер.
.wapper {
display: inline-flex;
border: 1px solid red;
padding: 10px;
margin-top:10px;
}
.div--1 {
margin-left: 50%;
}
.div--2 {
margin-left: 50px;
}
<div class='wapper'>
<div class='div--0'>
1234 5678 90
</div>
</div>
<br/>
<div class='wapper'>
<div class='div--1'>
1234 5678 90
</div>
</div>
<br/>
<div class='wapper'>
<div class='div--2'>
1234 5678 90
</div>
</div>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости