Задать вопрос
@tgarl

Как выстроить 4 блока, чтобы расстояния были одинаковые на флексах?

Есть такой шаблон:

69048c1cd0e52598271774.jpeg
Верстка:

<div class="modal__box-nominal-list">
		<ul>
			<li><a href="javascript:void(0);" class="active_nominal">10 000 ₽</a></li>
			<li><a href="javascript:void(0);">30 000 ₽</a></li>
			<li><a href="javascript:void(0);">100 000 ₽</a></li>
		</ul>
		<label class="input-container" for="free_nominal">
			<input id="free_nominal" name="free_nominal" class="input" type="text" placeholder="Сумма должна быть кратной 100 и больше 900" value="" inputmode="numeric" >
		</label>
	</div>

Использую флекс:

.modal__box-nominal-list {
	width:100%;
	display: flex;
	gap: 10px;
	flex-direction: column;
}
 ul{
	display: flex;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;	
}
 li{
	display:block;
	width:calc(33% - 6px); //половина от gap +1px, так как на малых экранах будет перенос
	margin-top:0;

Но расстояния никак не выходит сделать одинаковыми.
В чем ошибка?

Вот завел песочницу https://codepen.io/tgarl/pen/yyeRBdW
Получается между блоками у меня 13px и 11px и между 3 и инпутом 10px.
Замер делаю линейкой из программы FastStone.
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой 10 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Skillbox
    Веб-вёрстка 3.0
    3 месяца
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 1
Для всей конструкции (4 блока в контейнере) ты можешь использовать схему
33% указывать не надо - это неверный расчет, calc(100% / 3) - будет точнее.

.flex-container {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.flex-item {
flex: 1 1 calc((100% / 3) - 2rem);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы