grid что это такое простыми

CSS Grid понятно для всех

Что такое Grid?

Grid представляет собой пересекающийся набор горизонтальных и вертикальных линий — один набор определяет столбцы, а другой строки. Элементы могут быть помещены в сетку, соответственно строкам и столбцам.

Поддержка браузерами

В 2020 году поддержка браузерами достигает 94 %

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Grid контейнер

Мы создаем grid контейнер, объявляя display: grid или display: inline-grid на элементе. Как только мы это сделаем, все прямые дети этого элемента станут элементами сетки.

grid-template-rows — это CSS свойство, которое определяет названия линий и путь размера функции grid rows.

CSS свойство grid-row определяет с какой строки в макете сетки будет начинаться элемент, сколько строк будет занимать элемент, или на какой строке завершится элемент в макете сетки. Является сокращенным свойством для свойств grid-row-start и grid-row-end.

Свойство grid-template-areas определяет шаблон сетки ссылаясь на имена областей, которые заданы с помощью свойства grid-area.

Повторение названия области приводит к тому, что содержимое охватывает эти ячейки. Точка означает пустую ячейку. Сам синтаксис предоставляет визуализацию структуры сетки.

С помощью свойства grid-area мы можем назначить каждой из этих областей свое собственное имя. Именование областей еще не создает никакого макета, однако теперь у нас есть именованные области, которые мы можем в нем использовать.

Создаем шаблон сайта с CSS Grid:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Изменяем шаблон

Таким образом, если мы сменим на это:

То в результате получим такой шаблон:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Гриды с медиа запросами

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

Это делает CSS Grid идеальным для медиа запросов. Мы можем просто переназначить значения в ASCII-графике и обернуть результат в конечный медиа запрос.

В результате получим:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Заключение

В данной статье мы рассмотрели всего лишь верхушку CSS Grid Layout айсберга. Иногда сложно поверить своим глазам какие штуки удается сделать при помощи CSS Grid. Это разрыв всех шаблонов. И мне это нравится.

Я вам советую обратить внимание на данную спецификацию и потратить немного своего времени на ее изучение. Поверьте, в будущем вам это точно пригодится и не важно, пишете вы на React, Angular, Vue (вставьте свое). Grid’ы пришли надолго.

Источник

CSS Grid Layout. Быстрый старт

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Вступление

Я использую Flexible Box Layout

Многие задаются вопросом: «Стоп, я использую flexbox, зачем мне еще какие-то grid’ы?». Вопрос более чем уместен. CSS Grid не заменит Flexbox и наоборот. Первое отличие — это то, что Flexbox работает только в одном измерении. Из этого следует, что мы можем размещать flex элементы только вдоль главной оси или вдоль поперечной оси. Мы не можем разместить flex элементы сразу на нескольких осях. CSS Grid в свою очередь нам позволяет работать с разметкой в двухмерном пространстве и выравнивать содержимое в обоих измерениях. Мне нравится как объясняет эту разницу Tab Atkins.

Одна из самых больших проблем при разработке пользовательских интерфейсов — это то, что при изменении дизайна, функционала или поведения любого блока приходится менять его разметку (в большинстве случаев). CSS Grid позволяет менять расположение grid элементов не меняя сам HTML. Ниже пример простой разметки на Flexbox и CSS Grid.

Основные термины

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми
Прежде чем приступать к работе с CSS Grid, нужно разобраться с основными терминами. На основе этих терминов построена вся спецификация.

Grid container — это набор пересекающихся горизонтальных и вертикальных grid линий, которые делят пространство grid контейнера на grid области, в которые могут быть помещены grid элементы. Внутри grid контейнера есть два набора grid линий: один определяет ось столбцов, другой определяет ось строк.

Grid lines — это горизонтальные и вертикальные разделители grid контейнера. Эти линии находятся по обе стороны от столбца или строки. Автор может задать для данного элемента имя или числовой индекс, которые может использовать дальше в стилях. Нумерация начинается с единицы. Важный нюанс, данный элемент восприимчив к режиму написания, который используется на вашем ресурсе. Например, вы используете Арабский язык или любой другой язык у которого режим написания справа налево, то нумерация линий будет начинаться с правой стороны.

Grid track — это пространство между двумя смежными grid линиями, вертикальными или горизонтальными.

Grid cell — это наименьшая неделимая единица grid контейнера на которую можно ссылаться при позиционировании grid элементов. Образуется на пересечении grid строки и grid колонки.

Grid area — это пространство внутри grid контейнера, в которое может быть помещен один или больше grid элементов. Этот элемент может состоять из одной или более grid ячеек.

Каждый элемент тесно связан друг с другом и отвечает за определенную часть grid контейнера.

Первый CSS Grid макет

Мы разобрались с основными терминами. Пришло время сделать наш первый grid макет. Ничего сложного, простенький макет три строки на три колонки, чтобы разобраться с основами. Ниже вы можете увидеть пример.

Для разметки колонок и строк используются следующие правила:

Сокращенная форма записи выглядит так:

Типичный шаблон на grid’ах

Давайте рассмотрим первый вариант grid-template-areas :

Полезные ссылки

Вместо заключения

В данной статье мы рассмотрели всего лишь верхушку CSS Grid Layout айсберга. Я начал обращать внимание на CSS Grid Layout еще когда все браузеры его поддерживали за флагами. Данный текст не способен передать мои впечатления от работы с этой спецификацией. Иногда сложно поверить своим глазам какие штуки удается сделать при помощи CSS Grid. Это разрыв всех шаблонов. И мне это нравится.

Я вам советую обратить внимание на данную спецификацию и потратить немного своего времени на ее изучение. Поверьте, в будущем вам это точно пригодится и не важно, пишете вы на React, Angular, Vue (вставьте свое). Grid’ы пришли надолго.

Напоследок добавлю пример с произвольным появлением grid элемента в разных именованных областях.

Источник

Почему CSS Grid лучше Bootstrap для создания макетов

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Почему CSS Grid лучше Bootstrap для создания макетов

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

CSS Grid — это новый способ создания макетов в интернете. Впервые полноценная система вёрстки доступна прямо в браузере, что даёт массу преимуществ.

Эти преимущества становятся особенно выразительными, если вы сравните CSS Grid с самым популярным фреймворком Bootstrap. Вы можете не только создавать макеты, которые раньше были невозможны без JavaScript, но ваш код станет легче поддерживать и понимать.

Давайте посмотрим на три главных причины, почему я думаю, что CSS Grid превосходит Bootstrap.

Разметка станет проще

Замена Bootstrap на CSS Grid сделает HTML более чистым. Хотя это не самое важное преимущество, оно, вероятно, первое, которое вы заметите.

Для наглядности я создал фиктивный макет веб-сайта, чтобы можно было сравнить код, необходимый для двух версий. Вот:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

(Я добавил в пример немного дизайна. Однако это не имеет никакого отношения к сравнению CSS Grid и Bootstrap, поэтому я сохраню эту часть CSS снаружи своих примеров).

Bootstrap

Давайте для начала рассмотрим разметку, необходимую для создания этого сайта в Bootstrap.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Тут мне хочется, чтобы вы обратили внимание вот на что:

Если это адаптивный сайт, тэги выглядят как правило ещё хуже:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

CSS Grid

Теперь давайте посмотрим на способ реализации того же в CSS Grid. Вот HTML:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Я мог использовать семантические элементы, но решил придерживаться div, чтобы сравнение с Bootstrap выглядело понятнее.

Можно заметить сразу, что эта разметка проще. Уродливые имена классов и дополнительные тэги div для каждой строчки — в прошлом. Это просто контейнер для сетки и позиции внутри неё.

И в отличие от Bootstrap, эта разметка не станет слишком сложной с ростом сложности макета страницы.

В примере с Bootstrap от вас не требовалось добавлять CSS, в CSS Grid в этом конечно есть необходимость. Если конкретно, вам необходимо добавить это:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Для некоторых это может быть аргументом в пользу Bootstrap: вам не нужно беспокоиться о CSS для создания простой сетки — вы просто строите макет в HTML.

Но, как вы поймёте из следующего пункта, связь между разметкой и макетом на самом деле — уязвимость, если речь идёт о гибкости.

Намного больше гибкости

Предположим, вы хотите менять макет в зависимости от размера экрана. Например, поднимать меню в верхний ряд, для просмотра с мобильных устройств.

Другими словами — изменить макет с такого:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

CSS Grid

Делать это с CSS Grid очень просто. Мы добавляем media-запрос и перемешиваем разные блоки как хотим:

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Возможность создания макета подобным образом — не заботясь о том, как написан HTML — называется независимостью от порядка в коде (source order independence), и это гигантская победа для разработчиков и дизайнеров.

CSS Grid позволяет превратить HTML в то, чем он должен был быть. В разметку контента, а не визуальность, которая предназначена для CSS.

Bootstrap

Если бы мы захотели сделать то же самое в Bootstrap, нам бы потребовалось менять HTML. Нам нужно было бы поднять тег menu в верхний ряд, в добавок к header, потому что menu во втором ряду в заложниках.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Сделать такое с наличием медиа-запроса — не тривиальная задача. Такое можно провернуть только вместе с HTML и CSS, и вам бы пришлось возиться с JavaScript.

Этот пример показывает огромное преимущество CSS Grid, которое я испытал на себе.

Больше никаких ограничений 12 колонками

Это не самая крупная проблема, но она множество раз выводила из себя. Поскольку Bootstrap grid разделён на 12 колонок, у вас появятся проблемы, если вы захотите макет из пяти. Или семи. Или девяти. Или из числа, которое не двенадцать.

С CSS Grid всё не так. Вы можете сделать свой собственный макет из стольких колонок из скольких хотите. Вот макет из семи колонок.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Возможно, есть хак-способов сделать подобное в Bootstrap… И я в курсе, что Bootstrap 4 использует Flexbox, который даёт возможность такой гибкости, но он всё ещё никак не выйдет из бета-версии.

Поддержка браузера

Перед тем, как завершить эту статью, естественно, нужно поговорить о поддержке браузеров. На момент написания этой статьи, 75% глобального веб-трафика поддерживает CSS Grid.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Но, перед тем, как вы целиком откажетесь от мысли пользоваться CSS Grid, я советую прислушаться к тому, что говорит Мортен Ранд-Хендриксен об этом. Он утверждает, что CSS Grid — это возможность переосмыслить то, как мы представляем обратную совместимость:

CSS Grid — это модуль разметки, он позволяет нам менять разметку документа без вмешательства в порядок исходного кода. Другими словами CSS Grid — это абсолютно визуальный инструмент, и если его правильно использовать, он не будет влиять на внутренние связи содержимого в документе. Из этого следует простой, но удивительный факт: отсутствие поддержки CSS Grid в старом браузере не должно влиять на восприятие посетителя сайта, оно должно просто менять это восприятие.

Другими словами, как только вы отделите содержимое от визуальности, все посетители будут видеть содержимое, но CSS Grid сделает просмотр оптимальнее для тех, у кого есть его поддержка, с помощью более качественной разметки.

Заключение

Я хочу поделиться цитатой Джен Симмонс, разработчика Mozilla. Она описывает то же чувство, которое испытал я к CSS Grid, после того как разобрался в нём:

Чем больше я использую CSS Grid, тем больше убеждена, что нет никакого преимущества в добавлении слоя абстракции поверх него. CSS Grid — это фреймворк разметки, вшитый прямо в браузер.

Источник

Grid Layout как основа современной раскладки

В темные века верстальщики строили сайты на таблицах. Потом они освоили float и flexbox, и тьма отступила. В 2017-м наступила эпоха Просвещения с приходом CSS Grid Layout.

Grid учитывает горизонтальное и вертикальное пространство, с ним можно менять раскладку, не трогая разметку, и все это без медиазапросов. С Grid можно забыть про магические числа, хаки, обходные пути и CSS-фреймворки.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Несмотря на всю мощь, есть маленький нюанс, который портит картину — его все еще редко используют верстальщики. Спецификация Grid есть, браузеры поддерживают, а реальных проектов мало.

Об этом расшифровка доклада Сергея Попова на Frontend Conf: про спецификацию, про то, почему верстальщики боятся Grid и как решиться применять сетку в своих проектах, чтобы «Make your website great again!».

О спикере: Сергей Попов (popovsergey) — Генеральный директор аутсорса по фронтенд-разработке Лига А. от HTML Академии, фронтенд-разработчик, организатор сообщества moscowcss, соорганизатор WSD и pitercss_conf. Пока не стал руководителем в компании, много лет занимался версткой.

За последний год появилось много курсов и докладов про Grid, про то, как их использовать и писать. Если технические доклады вам надоели, то добавлю еще один в ваш список. Шутка — поговорим про комиксы. Или нет?

Примечание: вместо длинного «CSS Grid Layout» дальше будет просто «Grid».

Что сейчас с CSS Grid Layout?

Технически, Grid — это простая двухмерная сетка.
grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Нарисовать и использовать Grid достаточно просто, но разработчики все еще его сторонятся. Я вижу две причины для этого.

Спецификация

Первая версия спецификации вышла в 2012 году, много менялась, переписывалась, и, спустя пять лет, начала активно внедряться. В 2017 случился тот самый бум, когда за полгода Grid из состояния первого опубликованного черновика пришел к тому, что сначала Chrome внедрил его без флага, а потом и все остальные браузеры. Из-за того, что внедрение происходило в спешке, спецификация не утряслась и некоторые спорные моменты пришлось оставить, чтобы браузерам не пришлось переписывать половину движка.

Спецификация стабильна, хотя до сих пор в статусе Candidate Recommendation. Если бы я мог, то давно бы уже зарелизил, но разработчики спецификации пока не спешат, а дополняют и меняют формулировки.

Давайте применять нерекомендованную спецификацию Grid Layout — в этом нет противоречия, потому что Grid сначала была реализован, а потом описан.

Второе неверное утверждение — это то, что Grid не имеет смысла без второго уровня.

Второй уровень спецификации

Когда писали спецификацию, она оказалась слишком большой, поэтому какую-то часть выделили во второй уровень. На 2018 год спецификация второго уровня в состоянии First Public Working Draft — первая публикация рабочего черновика.

Над спецификацией активно работают и в ближайшее время она перейдет в состояние Working Draft — рабочий черновик. Разработчики ждут, пока зарелизят Grid, но это долгий процесс, который может затянуться лет на 5.

По легенде спецификация второго уровня решает проблемы первого уровня. На самом деле она добавляет фичи, без которых можно обойтись, и ничего не мешает использовать первый уровень без второго.

display: subgrid;

Не успели мы понять, что такое grid, как появился subgrid. Давайте разбираться, что это такое.

Представим такую разметку.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Все довольно просто: у нас есть сетка, в нее вложено три несемантических и один семантический элемент. Grid работает как flexbox: когда вы применяете display: grid; к обертке, он применяется только к элементам на первом уровне вложенности.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

займут место в сетке, а все, что находится внутри списка, — схлопнется. Вы потеряете все эти элементы, потому что так работает Grid.

Если хотите, чтобы эти элементы остались частью вашей сетки, то есть два варианта:

. Мы убьем семантику, но оставим сетку.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Одна проблема — subgrid не поддерживается, он где-то там за флагами, а релиза можно ждать еще долго.

display: contents;

Есть нюанс — display: contents; поддерживается не во всех браузерах.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

CSS Subgrid Emulation

Пока у display: contents; решают проблему поддержки, верстальщики придумали выход — сделали эмуляцию subgrid.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Свойства с дефисом — это кастомные свойства в CSS.

Второй уровень не нужен

Если кто-нибудь скажет не использовать Grid, пока не выйдет второй уровень — не слушайте его. Второй уровень решает определенные проблемы, которые уже решены другими способами.

Не везде нужны subgrid. Grid в связке с Flexbox иногда получается куда круче, чем с subgrid.

Поэтому не надо ждать второй уровень, смело занимайтесь первым. Тем более, что он уже есть.

Поддержка Grid в браузерах

Эту картинку можно показывать, если кто-то скажет вам, что Grid не поддерживается.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Глобально поддерживается 87% браузеров, кроме Opera Mini — она ничего не поддерживает. Я писал в CanIuse, просил убрать ее из колонки, чтобы не портить картину, но пока безрезультатно 😉

Остается проблема с IE. Как всегда, он здесь, с нами, и никуда не делся.

IE и Grid

Если ваше приложение поддерживает IE, вы возможно скажете, что не можете использовать Grid. Это не так — Grid работает в IE, так как спецификация была рождена в Microsoft, и впервые появилась именно в IE. Просто ее никто не использовал, пока не пришли нормальные люди и не переписали спецификацию.

IE справляется с Grid, но ему нужно объяснить, как это делать. IE поддерживает Grid в старой версии спецификации, в которой не все свойства поддерживаются, а часть называется по-другому.

Версию спецификаций для IE учить не нужно, потому что большую часть работы за вас сделает Autoprefixer — плагин, который переводит новую версию спецификации в старую. Поэтому, чтобы обеспечить поддержку Grid в IE, достаточно использовать Autoprefixer.

Остальное надо просто знать и помнить. Достаточно открыть статью «Supporting CSS Grid in Internet Explorer», прочитать какие свойства поддерживаются в IE, а какие нет, и решить, что из них вы будете использовать.

Помните про «graceful degradation», когда в старых версиях браузера пропадают элементы из новых. Например, в браузерах, в которых не поддерживается border-radius, у форм будут квадратные уголки. Верстальщиков заставляли вырезать картинки форм, вместо CSS, и в некоторых ситуациях это считалось нормальным.

Почему бы в старых версиях браузеров не переводить Grid в обычные колонки? Если вы разрабатываете под старый браузер, либо не используйте современные технологии, либо смиритесь с тем, что контент в них будет выглядеть по-другому.

Internet Explorer вместе с Grid работает неплохо, просто надо немного практики. Если вы не используете Grid, потому что боитесь IE, то я вынужден вас удивить — это не прокатит.

Баги и Grid

Вы можете сказать, что в Grid много багов, но это не так. Rachel Andrew нашла все ошибки в CSS Grid — всего их 14, и это все что есть. Никто не занимается Grid Layout CSS больше, чем Рейчел, поэтому ей можно доверять.

Баги довольно специфические. Мы помним, когда пришли flexbox, в них тоже были баги, но нас это не остановило. Баги в Grid нас тоже не останавливают, тем более, такие.
grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

«Некоторые HTML элементы не могут быть Grid-контейнером». Сразу идет уточнение, что кнопка не может быть Grid-контейнером, но мы и не хотели этого.
grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

«Textarea, когда она является элементом Grid, схлопывается». Проблема легко решается, если поставить ширину и высоту в процентах.

Эти баги довольно специфические и проявляются не во всех браузерах. Если ты знаешь, что баг может проявиться, то просто берешь и исправляешь — это несложно.

Технических причин не использовать Grid не так уж много. Браузеры поддерживают, а в старых браузерах применяйте «graceful degradation». Теоретических причин тоже мало, потому что материалов больше, чем по flexbox.

Теория, или маленький ликбез

Сайты уже используют Grid. Например, я зашел на сайт Russian Internet Week, и это последнее место, где я ожидал увидеть Grid. Обычно сайты бизнес-конференций собираются на Тильде.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Причем они более-менее правильно используют сетку. RIW попробовали, и у них получилось, причем без fallbacks. Они явно ориентируются на пользователей современных браузеров.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Конференции, которые рассказывают про CSS, в любом случае, пытаются применять новые инструменты. Мы на сайте pitercss_conf сделали бейджики, а у ребят из Минска половина сайта на Grid.

Russian Internet Week — это довольно узкая аудитория посетителей. New York Times читает больше людей.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Я уверен, что среди читателей есть владельцы устройств даже с IE 9, 10, 11, но половина сайта на Grid.

Я был удивлен, когда увидел, что такие крупные проекты используют Grid.

Почему Grid не используют повсеместно?

Мы поняли, что спецификация есть, ее можно использовать и никакие отговорки не сработают. Так в чем же дело?

Есть определенные причины не применять сетки:

С точки зрения дизайна

Сейчас я буду защищать дизайнеров.

Дизайн развивается медленно, по своим трендам, никак не связанным с развитием веб-технологий. Скорее наоборот — веб-технологам приходится подстраиваться под тренды дизайна. Маловероятно, чтобы верстальщики сказали: «Дизайнеры, а у нас есть Grid, можно с ним работать», а они бы ответили: «О, да!» и начали рисовать под них макеты.

Поэтому большинство сайтов выглядит так.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Абстрактный пример с простой сеткой и колонками, ничего необычного. Сайт легко собирается без flexbox, на float, даже можно обойтись табличной версткой.

Дизайнеры перестали ставить перед верстальщиками сложные задачи, потому что когда-то мы сами загнали их в угол тем, что перестали делать то, что они хотят.

Приходит к нам дизайнер и говорит:

Потом мы идем к менеджеру, жалуемся, и дизайнер получает по голове.

Все, дизайнер больше не рисует сложные сетки. Раньше мы действительно не могли строить сложные интерфейсы, а сейчас можем — у нас полно инструментов. Теперь дизайнер не хочет, он перестал просить сложные макеты. Дизайнер рисует интерфейс, чтобы верстальщик смог его реализовать, и часто максимально примитивно.

Приведу распространенный пример из нашего аутсорса. Дизайнер получил задачу нарисовать блог и дает волю всем своим сеточным порывам. Рисует большой блок, широкий, 3 маленьких, средний, фантазирует. Выглядит круто и современно.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Верстальщик видит макет, пишет на flexbox одну обертку, вторую, третью и получает вот такую картинку.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Верстка идет в бэкенд.Бэкендер говорит верстальщику, что у него есть вывод из базы данных, а там карточки идут друг за другом, разложить их не получится.

На этом счастливая история заканчивается и мы возвращаемся к дизайнеру.

Когда дизайнер рисовал макет, то представлял и другие варианты. В вариантах был полет фантазии, а бэкендер сломал порывы в один момент. План сделать красивый блог, провалился.

Здесь есть разные варианты выхода:

Реальный кейс

На главной странице журнала «The Village» сложная сетка. Она выполнена намеренно для разных типов материалов. Я знаю про это, так как работал в издании.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

«The Village» написали огромный алгоритм, который на бэкенде генерирует сетку. Это смесь float, абсолютного позиционирования и других страшных вещей, но она работает!

Иногда ломается, но, когда это происходит, блоки просто переставляются местами и снова все работает.

На момент создания алгоритма этой технологии еще не было, но когда речь пошла о редизайне, я предложил сразу использовать Grid.

В «The Village» заморочились, чтобы сделать как хотят, но большинство этого не делает. Поэтому мы видим заурядный веб, стандартизацию, все сводится к одному Layout. Раньше у нас был Bootstrap, который описывает большую часть кода. Сейчас уже у дизайнеров есть свои инструменты, наподобие Bootstrap, которыми они собирают сайты. Что за ерунда — где креатив?!

Наша задача состоит не в том, чтобы внутри сообщества договориться использовать Grid, а в том, чтобы мы рассказали об этом дизайнерам.

Я мечтаю выступить на конференции дизайна и сказать: «Привет! Мы стали лучше! Мы теперь снова умные», но верстальщика не пускают на дизайнерские конференции. Рассказать дизайнерам, что мы стали лучше — это не так уж сложно. Вам пришла простая сетка, вы спрашиваете: «Почему она простая, а не сложная? Я могу сделать любую!»

С точки зрения реализации

Кажется, что Grid сложно найти. Когда мне говорят: «У меня 3 колонки и я могу сделать это на flexbox. Зачем мне Grid?», то я отвечаю: «Действительно, не надо». Поэтому возникают сложности с тем, где вообще прикладывать Grid.

Grid — это не только сложная сетка

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Это и простая раскладка, которую можно сделать на Grid, причем проще, чем на flexbox, потому что не нужна дополнительная обертка. Ниже есть один пример на Grid, его тоже можно сделать на flexbox, но надо много дополнительных оберток или flow, и получится настоящая мешанина.

Grid — не для мелких элементов: либо для очень сложных мелких, либо для крупных.

Grid для раскладки

Я не знаю ни одного сайта, у которого нельзя переписать раскладку на Grid и сэкономить на этом кучу бесполезных дополнительных оберток.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Самое сложное в Grid Layout — это начертить сетку, которая вам подходит. В данном случае это не просто 6*6, а 5*8, но у каждого блока разная высота и ширина.

Мы видим задачу и компонуем контент, очень похоже на направляющие в Photoshop. Дизайнер отрисовал, а мы перевели макет на сетку. Здесь нет ни одной дополнительной обертки — только семантические элементы, которые выстраиваются в сетку с помощью Grid.

Посадочный талон можно сделать на flexbox.
grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

А можно на Grid, и в мобильной версии талон выглядит по-другому.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Grid для структуры

Вторая важная вещь, которую нужно запомнить: с помощью Grid просто менять структуру.

Есть order во flexbox, который позволяет поменять порядок всех элементов. Это сложная технология, и как с Z-индексами можно выстрелить себе в ногу, если не знать, как ей пользоваться.

С Grid все просто. В этом примере, если бы не было сетки, нам бы пришлось правую часть с QR-кодом вынести в абсолютное позиционирование. А на Grid это 13 строк кода в мобильной версии.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Чтобы начать использовать Grid, надо начать использовать Grid. Попробуйте сверстать на сетке некоторые элементы вашего интерфейса. Можно начать с маленьких, можно — с глобальных, чтобы понять, насколько это упрощает жизнь.

Никто не скажет вам: «Вот здесь используй Grid, а здесь — нет!» Вы должны сами понять и научиться, но для этого нужно набивать шишки. Если реализация задачи на Grid заняла в два раза больше времени, чем на flexbox, значит, такие задачи не надо решать на Grid.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Вот для комиксов Grid идеален.

Рассмотрим нетривиальную задачу.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Если покопаться в коде, становится понятно, как все устроено. Ребята программируют на CSS и выстраивают Grid Areas. В зависимости того амплуа игрока, он автоматически встает в нужную Area. Вертикальное и горизонтальное выравнивание создает построение. Это целое программирование на CSS. Задача решается 50 строчками CSS-кода, что гораздо проще, чем через бэкенд или JS.

Я хочу, чтобы дизайны и раскладки были прикольными, такие как эта.

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Это слишком сложная верстка на Grid, потому что задача была сложная. Верстальщик не мог отрисовать раскладку на простых flexbox, только Grid. Можно было сделать меньше ячеек, но учитывая, что ячейки строит repeat, на это много времени не ушло. Главное, что они сделали это.

Сверстано замудренно, но интерфейс очень круто перестраивается в дальнейшем.

Что дальше?

Давайте перестанем говорить себе: «Я не могу» в плане Grid. Вы можете — просто не хотите. Нет ни одной объективной причины не использовать сетку, кроме лени и нежелания попробовать.

Поэтому у вас никогда не будет готового решения. Возможно, будут шаблоны, но правил, где применять Grid, а где нет — не будет.

Учитесь, смотрите примеры, развивайтесь. Нет ничего плохого в том, чтобы смотреть на примеры других людей. Я, например, так и делаю.

Несите знания в команду. Говорите, что знаете Grid, предлагайте его использовать.

Подойдите к дизайнеру и скажите: «Давай ты будешь рисовать интереснее, а я буду твои задумки реализовывать!»

Скажите менеджеру: «Мы теперь можем больше с Grid!»

Делитесь знаниями внутри команды и двигайте веб вперед. В конечном счете у нас простая цель — делать веб лучше и круче!

grid что это такое простыми. Смотреть фото grid что это такое простыми. Смотреть картинку grid что это такое простыми. Картинка про grid что это такое простыми. Фото grid что это такое простыми

Если в какой-то момент у нас все уходило в упрощение, то сейчас есть новые технологии. Не только Grid — это SVG-маски, анимации, трансформации. Проблема не в технологиях, а в том, что большинство до сих пор не использует на полную и половины из них. Мы не знаем всего или не хотим использовать, а дизайнеры не догадываются, что мы можем.

Контакты Сергея Попова: e-mail, Fb, twitter

Это доклад — один из лучших на Frontend Conf. Понравилось, и хотите больше — подпишитесь на рассылку, в которой мы собираем новые материалы и даем доступ к видео, и приходите на Frontend Conf РИТ++ в мае.

Знаете больше и готовы делиться опытом — отлично! Присылайте тезисы, прием докладов уже открыт и будет продолжаться до 27 февраля.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *