Может ли grid автоматически растянуть по ширине не влезающий элемент (как flex-grow при wrap)?
Всем привет. У меня есть grid блок в котором 3 дочерних блока. Родитель имеет следующий код:
.base-box { display: grid; grid-template-columns: repeat(auto-fill, minmax(375px, 1fr)); grid-auto-rows: auto; max-width: 1200px; overflow: hidden; border-radius: 20px; } |
.base-box { display: grid; grid-template-columns: repeat(auto-fill, minmax(375px, 1fr)); grid-auto-rows: auto; max-width: 1200px; overflow: hidden; border-radius: 20px; }
Что я хочу сделать: при сжимании экрана самый правый блок (темно-зеленый) автоматически перелетает на 2 ряд, но занимает при этом только 1 ячейку. Можно ли сделать так, чтобы без дополнительных media правил он автоматически растягивался на 2 ячейки как если бы это было при flex? P.S. - Я просто хочу хорошо научиться работать и понимать grid и по этому пробую всякое.
Дополнительно:
Без auto-fill можно и без media. С помощью вот этой чудесной статьи https://css-live.ru/articles/resheno-s-pomoshhyu-c...
Но я не уверена, что дизайнеру понравится решение с растянутой строкой (но это уже не о гридах)
но не понял как она может помочь в данном случае
В данном случае, при наличии auto-fill, никак.
Если колонок фиксированное количество, а элементов неизвестно сколько и нужно навести порядок в последнем ряду, то поможет nth-, :not и вся та история из статьи.
Вот пример как это должно работать, только на grid: https://study-projects.netlify.app/3columns/
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, grid может автоматически растянуть по ширине не влезающий элемент, как это делает flex-grow при wrap. Для этого можно использовать свойство grid-template-columns и значение minmax().
Пример использования:
.container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
В данном примере мы создаем сетку с помощью grid с указанием grid-template-columns. Свойство repeat(auto-fit, minmax(200px, 1fr)) означает, что элементы будут автоматически растягиваться по ширине и при этом не будут меньше 200px. Таким образом, если элемент не влезает в одну колонку, он будет автоматически перенесен на следующую строку и растянут на всю доступную ширину.
Этот подход позволяет создать адаптивную и гибкую сетку, которая будет подстраиваться под содержимое и растягивать элементы по ширине при необходимости.