@Grione

Как правильно сделать отступы у flex элементов при flex-wrap?

Есть вот такой базовый код. Нужно, что бы было 2 ряда по 3 элемента. Хочу использовать gap для отступов т.к. это удобно. Но не могу никак понять, как правильно убрать пустой отступ справа. Подскажите как правильно использовать gap для флексов при flex-wrap: wrap ?

Я понимаю, что могу использовать вместо gap маргины, и делать у контейнера отрицательные отступы по бокам, но хочется именно с gap разобраться.
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>

.container {
  width: 500px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  border: 1px solid green;
}

.element {
  width: calc(33.3% - 20px);
  height: 50px;
  background: black;
}

63fdde47a1364309127922.png
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега CSS
frontend developer
.element {
  /* width: calc(33.3% - 20px); */
  width: calc((100% - 20px * 2) / 3);
  height: 50px;
  background: black;
}


Или сделать так:

.container {
  width: 500px;
  display: grid;
  grid-gap: 20px;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid green;
}

.element {
  height: 50px;
  background: black;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
imko
@imko
Senior Scratch Developer
Так отступа 2 а элемента 3. Надо не 20 вычитать из ширины а (2/3)*20
А вообще такое гридом в три колонки делатеся
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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