Конструктор сеток CSS Grid

Рисуем сетку мышью сразу под три экрана и отдаём готовые CSS и HTML. Заодно проверяем то, о чём молчат остальные: совпадает ли порядок блоков на экране с порядком в разметке.

Каждая раскладка уже собрана под три экрана. Дальше правьте под себя — переключатель ниже меняет только текущий экран.

Разметка у всех трёх одна, меняется только расстановка. Так адаптивную сетку и пишут руками.

Годятся 1fr, 200px, 30%, auto, min-content, minmax(200px, 1fr).

Выберите область и рисуйте по клеткам мышью. Кириллицу переведём в латиницу: имя уходит прямо в CSS.

Тонкая настройка Свернуть тонкую настройку

От него собираются имена элементов: .grid__header, .grid__main.

Что стоит проверить

Разметка

CSS

То же самое в SCSS Свернуть SCSS

SCSS

Сразу три раскладки, а не одна

Сетку почти никогда не делают одинаковой на телефоне и на большом экране: боковая колонка на узком экране уезжает вниз, три колонки превращаются в одну. Генераторы обычно отдают одну сетку, и медиазапросы к ней дописывают руками. Здесь раскладки три, они переключаются вкладкой, а на выходе получается код с готовыми медиазапросами. Пороги можно поменять в тонкой настройке.

Имена областей у всех трёх раскладок общие, поэтому разметка одна. Меняется только расстановка, и это ровно то, как адаптивную сетку пишут без генератора.

Порядок на экране и порядок в разметке

Grid умеет поставить блок визуально раньше, чем он идёт в HTML. Глазами всё правильно, а клавиша Tab и экранная читалка идут по разметке, то есть в другом порядке. Получается сетка, которая выглядит верно и не работает с клавиатуры.

Мы считаем порядок чтения по каждой раскладке, сравниваем с порядком блоков в разметке и показываем, что разъехалось. Такой проверки нет ни у одного из генераторов, которые мы смотрели.

Кривую область поймаем до того, как она сломает сетку

Область в grid-template-areas обязана быть прямоугольной. Нарисуете уголок — браузер отбросит всё свойство целиком, вместе со всей расстановкой. Сообщения об ошибке при этом не будет нигде: ни в консоли, ни в инструментах разработчика, сетка просто рассыплется. Мы проверяем прямоугольность каждой области и говорим, сколько клеток не хватает.

Карточки, которые сами считают колонки

Отдельный вид сетки — repeat(auto-fit, minmax(…, 1fr)). Число колонок подбирает сам браузер: как только карточки перестают влезать в заданную ширину, колонка убирается. Медиазапросы для такой сетки не нужны вовсе. Этого приёма нет у части генераторов, а именно им делают списки товаров, статей и кейсов.

Что дальше

Готовый CSS можно тут же перевести в SCSS со вложенностью конвертером CSS и SCSS, подобрать цвета палитрой из изображения, а собранную страницу прогнать через проверку валидности HTML.

Другие инструменты