Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

Я работаю над своим система сетки, который допускает до 16 столбцов в строке, и каждый из них был разделен 1rem промежутком.

Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

В строке может быть 4 столбца, если каждый столбец занимает 4 ширины (4 x 4 = 16).

Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

И в строке может быть только один столбец, если каждый занимает 16 ширины.

Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

Проблема

Когда я сжимаю сетку, столбец переполняется.

Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

Столбцы могут сжиматься, но это не может быть меньше, чем Grid Gap.

1rem (Gap) * 16 (Columns per row) = 16rem

Следовательно, Сетка не может быть короче 16rem.

Позволяет столбцам CSS Grid быть короче, чем Grid Gap, чтобы предотвратить переполнение

※ Черная рамка указывает на контейнер Grid.

Поскольку этого не произошло с Flexbox, мне интересно, есть ли какой-либо стиль, позволяющий столбцу быть короче, чем зазор сетки, чтобы моя сетка могла быть короче, чем 16rem?

Код

Сетка

.ts-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(16, minmax(0, 1fr));
}

Столбцы

.ts-grid .column {
    grid-column: auto / span 1;
}

Вот для чего нужны медиа-запросы.

Paulie_D 06.05.2022 14:11

@Paulie_D Я пробовал использовать медиа-запросы, но некоторые контейнеры на экране рабочего стола маленькие, что не может вызвать мои условия медиа-запросов. Жду Запросы контейнера :(.

Yami Odymel 06.05.2022 14:19
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Используйте min() на зазоре, чтобы уменьшить его, когда контейнер маленький:

.grid {
  display: grid;
  gap: min(1rem, 5%);
  grid-template-columns: repeat(16, minmax(0, 1fr));
  border:1px solid;
}

.grid>div {
  height:50px;
  background:red;
}
.grid > div:only-child {
  grid-column: span 16;
}
<div class = "grid">
  <div></div>
</div>

<div class = "grid">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

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