Проблема с макетом Flexbox: элементы не отображаются правильно в строках

Я работаю над макетом, используя HTML и CSS с Flexbox. Моя цель — отобразить по 4 элемента в каждой строке. Однако мой текущий код отображает только 3 элемента в строке. Буду признателен за любые рекомендации по решению этой проблемы.

Несмотря на то, что ширина .element установлена ​​на 25%, что должно позволять размещать по 4 элемента в строке, элементы отображаются по 3 в строке. Почему элементы не отображаются по 4 в строке, как ожидалось? Как я могу настроить свой CSS, чтобы обеспечить 4 элемента в строке?

Заранее благодарим вас за вашу помощь!

.container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border: 4px solid gray;
}

.element {
  width: 25%;
  height: 300px;
  padding: 8px;
  box-sizing: border-box;
  background-color: silver;
}
<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>

«Несмотря на то, что ширина .element установлена ​​равной 25%, что должно позволять разместить 4 элемента в строке» — вы не учли gap: 8px...

DarkBee 06.08.2024 10:46
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во Flexbox gap не учитывается при настройке ширины, поэтому вам придется настраивать ширину, чтобы учесть зазоры.

Будет 3 пробела, поэтому нам придется разделить лишние 3 пробела на 4 элемента в строке.

.container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border: 4px solid gray;
}

.element {
  width: calc(25% - (8px * (3 / 4)));
  height: 100px;
  padding: 8px;
  box-sizing: border-box;
  background-color: silver;
}
<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>

Другие вопросы по теме