Чтобы на экране при просмотре веб-ресурса информация отображалась корректно, необходимо грамотно организовать его верстку. Она распространяется на кнопки, блоки с текстом, навигацию и другие компоненты.

Верстка веб-страниц производится через специальный язык – CSS (Cascading Style Sheets). Он имеет множество элементов. Одним из важнейших для верстальщика, самым адаптивным и удобным, стал компонент grid. Далее предстоит познакомиться с соответствующий свойством более детально.

Предложенная информация не только объяснит, что такое grid, но и поможет уяснить правила создания этого компонента. Соответствующие сведения ориентированы на широкую публику. Они пригодятся тем, кто планирует заниматься версткой через CSS.

Определение

CSS Grid Layout – технология для размещения (раскладки) элементов на веб-странице. Она представляет собой двумерную сетку. На ней будут размещаться разнообразные компоненты будущего сервиса.

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

Grid хорошо приспосабливается к различным размерах экрана, что наделяет этот инструмент верстки хорошей адаптивностью. Структура грида напоминает обычный файл Excel: имеются как горизонтальные, так и вертикальные линии. Они совместно образуют множество разных ячеек. В них размещаются не какие-либо выгрузки по зарплатам, а составляющие веб-сайта: кнопки, блоки HTML-кода, текст, картинки и так далее.

Части CSS-сетки grid называются так:

  1. Контейнер – наиболее важный элемент всей разметки. Он хранит в себе содержимое всей сетки.
  2. Ячейка – это единица грид-сетки. Она предусматривает возможность размещения внутри одного или нескольких блоков кода.
  3. Линия – горизонтальная или вертикальная линия. Этот компонент разделяет столбцы и колонки.
  4. Строка – ряд из ячеек.
  5. Столбец – колонка ячеек.
  6. Элемент – какой-нибудь элемент веб-сервиса или сайта.
  7. Область – пространство из ячеек. В CSS можно объединять ячейки в единое целое, а затем работать с ними как с одним компонентом.

Grid – это удобное средство для верстки. Оно отличается от Flexbox (другого популярного типа CSS-разметки) возможностью формирования двумерных таблиц. Это значит, что в них одновременно могут содержаться ряды и колонки. У Flexbox элементы выстраиваются или только в столбик, или в линию – сочетание данных приемов не поддерживается.

Свойства

Свойства грид-контейнера используются для того, чтобы задавать параметры таблицы. А именно: количество строк и столбцов, их размеры, расположение и другие особенности. Далее предстоит познакомиться с этими самыми свойствами и их принципами работы.

Display

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

Columns

Для того, чтобы создать колонки, требуется записать их размеры через пробел. Габариты ячеек указываются в самых разных единицах измерения:

  • процентах;
  • сантиметрах;
  • пикселях.

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

Чтобы лучше понимать принцип работы ячеек, необходимо рассмотреть наглядный пример: создаются три колонки. Первая будет занимать 1/3 экрана, вторая – только 100 px, третья – оставшееся пространство. Наиболее простой вариант – это запись размером через проценты:

Верстка CSS и использование grid

Общая ширина всех колонок будет больше 100 %. Это приведет к тому, что третья колонка выедет за пределы контейнера:

Верстка CSS и использование grid

Чтобы таких ситуаций не было, для гридов придумали отдельную единицу измерения – фракцию (fr). С ее помощью удастся разделить свободное экранное пространство на несколько частей (блоков) и не подгонять проценты вручную.

В рассматриваемом примере предстоит отдать одну часть свободного пространства одному столбцу (1fr), третьему – две (2fr), а тот, что будет размещаться по центру, получает положенные 100px. Выглядит в коде ситуация так:

Верстка CSS и использование grid

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

Ряды

Следующее свойство grid-контейнера – это ряды (grid-template rows). Примером для рассмотрения этого свойства послужит задание размеров строк имеющейся таблице (сетке).

Верстка CSS и использование grid

Здесь можно заметить, что размеры двух строк повторяются. Они занимают 2fr. Для того, чтобы все время не записывать одни и те же параметры (свойства), рекомендуется воспользоваться функцией repeat. В ней имеются два входных параметра:

  • размер строки (с измерением во фракциях);
  • количество повторений.

Выглядеть соответствующее свойство будет так:

Верстка CSS и использование grid

Это упрощенная, краткая запись. И полная интерпретация кода, и сокращенная могут встречаться в одной верстке. Их допустимо чередовать – в зависимости от контекста. В заданном примере без функции repeat можно было бы обойтись. Но, если требуется создать 15-20 и более колонок, она смогла бы сделать исходный код более читаемым и удобным.

Области

В CSS гриды имеют еще одно свойство – области (areas). Их размеры могут гибко регулироваться для дальнейшей верстки.

Для создания области в каждом CSS-файле объявляется свойство grid-area, параметром которого станет любое имя. Допустимо просто добавить соответствующий фрагмент в любое место CSS-документа:

Верстка CSS и использование grid

Теперь необходимо зайти в grid-контейнер и сформировать там матрицу имен областей:

Верстка CSS и использование grid

Теперь элементы на дисплее будут выстраиваться по заданному шаблону. Это свойство работает так: каждое имя в grid-template-areas соответствует определенному объекту. Одинаковые имена, которые стоят рядом друг с другом, будут формировать из нескольких ячеек одно целое. Это и есть грид-область:

  1. Компонент A с именем f в заданном примере займет 25 ячеек.
  2. Элемент B (i) – 9.
  3. C (b) отнимает 4 ячейки.
  4. D (o) и E (n) – занимают соответственно по одной ячейке.

Есть и другие свойства контейнера, о которых необходимо помнить при CSS-верстке.

Сокращенное свойство

Свойство grid-template используется для более быстрого и удобного определения строк со столбцами, а также целых областей. В программном коде данный параметр будет выглядеть так:

Верстка CSS и использование grid

Соответствующее свойство позволяет всего одной строчкой сформировать полноценную таблицу. Для этого через слеш записывается количество столбцов и рядов. Вот пример создания сетки из трех строк по 1fr и двух столбцов по 2fr:

Верстка CSS и использование grid

Свойство grid-template может принимать функцию repeat:

Верстка CSS и использование grid

Сокращенная запись для объявления grid-областей тоже поддерживается. Для использования этого приема требуется объявить свойство grid-area. Сделать это необходимо для каждого отдельно взятого элемента:

Верстка CSS и использование grid

Все перечисленные ранее свойства относятся только к грид-контейнеру. Но есть параметры, которые присущи только grid-элементам. Они будут рассмотрены далее.

Свойства грид-компонентов

За счет свойств grid-элементов допускается прямое указание браузеру на то, где должны размещаться составляющие веб-страницы. Для этого потребуется воспользоваться двумя точками:

  • с какой линии элемент будет начинаться;
  • на какой линии компонент заканчивается.

Соответствующий принцип актуален как по горизонтали, так и по вертикали. Вот движение компонента по горизонтали:

  • grid-column-start: 1; – используется для записи начальной позиции (линии) столбцов;
  • grid-column-end: 4; – задание конечной позиции (линии) столбцов;
  • grid-column: grid-column-start / grid-column end; – объединенное свойство грид-линий столбцов, которое позволяет задать начало и конец.

А вот конструкции, которые помогут задать свойство по вертикали:

  • grid-row-start 1; – задание начальной позиции (линии) строк;
  • grid-row-end: 3; – указание конечной позиции (линии) строк;
  • grid-row: grid-row-start / grid-row-end; – объединенное свойство грид-линий строк, с помощью которого задается их начало и конец.

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

Верстка CSS и использование grid

Теперь можно рассмотреть принцип действия соответствующих свойств на практике. Для этого параметры задаются буквами первым трем элементам:

Верстка CSS и использование grid

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

  1. Элемент A занимает пространство от первой до четвертой линии – как по горизонтали, так и по вертикали.
  2. B простирается на четвертой-шестой линиях по горизонтали и от первой до третьей – по вертикали.
  3. C – элемент, который занимает область от четвертой до пятой линии по горизонтали. По вертикали он простирается на третьей и четвертой линии.

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

Отступы

При помощи свойства grid-gap происходит регулирование интервалов между элементами в контейнере (отступы). Для этого необходимо воспользоваться двумя входными параметрами:

  • column-gap – указывает на расстояние между колонками;
  • row-gap – используется для задания расстояния между имеющимися строчками.

В программном коде реализация свойства «отступы» будет иметь примерно такой вид:

Верстка CSS и использование grid

Gap имеет сокращенную запись, как и свойство grid-template. В ней параметры column-gap и row-gap записываются непосредственно через пробел:

Верстка CSS и использование grid

Основные свойства грид-контейнера и его компонентов изучены. Теперь предстоит разобраться с принципами выравнивания элементов в рамках того или иного контейнера/области.

О выравнивании контейнеров

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

Justify-items

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

  • justify-items: stretch; – используется для растягивания компонента по всей ширине grid ячейки;
  • justify-items: start; – позволяет расположить компоненты в левой части области или ячейки;
  • justify-items: center; – используется для расположения grid ячеек или областей в центре сетки;
  • justify-items: end; – конструкция, позволяющая располагать компоненты и области в правой части.

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

Align-items

Команда, которая позволяет выравнивать grid-элементы в пределах заданной области по вертикали. Здесь используются следующие команды:

  • align-items: stretch; – используется для того, чтобы растянуть составляющие страницы на всю длину grid-ячейки;
  • align-items: start; – располагает компоненты в верхней части ячейки;
  • align-items: center; – расположение по центру «сетки»;
  • align-items: end; – конструкция, позволяющая располагать элементы в нижней части grid-ячейки.

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

Justify-content

Команда, которая поможет выровнять составляющие веб-сайта или сервиса относительно всего grid-контейнера по горизонтали. Здесь можно пользоваться следующими операциями:

  • justify-content: start; – расположение составляющих в левой части контейнера;
  • justify-content: center; – расположение по центру grid-контейнера;
  • justify-content: end; – конструкция, помогающая разместить составляющие веб-страницы в правой части grid-контейнера;
  • justify-content: space-between; – распределение по левому и правому краю так, чтобы первая составляющая находилась ближе к началу, а последняя – к концу;
  • justify-content: space-around; – распределение с равным пространством между составляющими сайта и половиной этого пространства от краев;
  • justify-content: space-evenly; – используется для распределения положения с равным пространством от краев и непосредственно между имеющимися элементами.

Изучая display grid, необходимо помнить – выравнивание производится не только по горизонтали, но и по вертикали. Для этого CSS предусматривает отдельные конструкции.

Align-content

Align-content – команда, позволяющая выравнивать составляющие веб-портала на дисплее в пределах имеющегося контейнера. Выравнивание осуществляется по вертикали. Для него необходимо задействовать следующие конструкции:

  • align-content: start; – расположение в верхней части grid-контейнера;
  • align-content: center; – выравнивание по центру (по середине);
  • align-content: space-between; – расположение по верхнему и нижнему краю так, чтобы первый компонент оказался ближе к началу, а последний – к концу;
  • align-content: space-around; – распределение с равным пространством между компонентами и половиной имеющегося свободного места.

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

Выравнивание элементов

Это параметры, которые используются для работы с отдельными grid-компонентами. Свойства будут приписываться не всему контейнеру, а только одной его составляющей. Примером станет блок А.

Justify-self

Параметр, который используется для выравнивания составляющей А по горизонтали. Здесь на помощь приходят следующие команды:

  • justify-self: stretch; – растягивание блока А по всей длине grid-области;
  • justify-self: center; – расположение А по центру области;
  • justify-self: start; – размещение блока А в самом начале grid;
  • justify-self: end; – размещение в самом конце области.

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

Align-self

С помощью этой конструкции можно выравнивать grid-элементы по вертикали. Рекомендуется пользоваться следующими командами:

  • align-self: end; – расположение в конце grid-области;
  • align-self: center; – выравнивание по середине области;
  • align-self: start; – расположение блока А в самом начале grid области;
  • align-self: stretch; – растяжение компонента А по всей ширине имеющейся области.

Теперь понятно, какие параметры можно использовать в процессе верстки. Существуют еще несколько приемов, о которых необходимо знать при работе с CSS.

Вложенность

Гриды в верстке сайтов бывают вложенными. Это ситуация, когда в одном гриде имеется другой грид-контейнер. Для того, чтобы лучше понимать вложенность, рекомендуется рассмотреть наглядный пример. Вот HTML-каркас, который имеет еще один подуровень компонентов:

Верстка CSS и использование grid

Для основного контейнера в CSS-файле необходимо создать сетку размером 3 x 3:

Верстка CSS и использование grid

Для компонента D необходимо определить display: grid. Эта команда помогает объявить в нем еще одну сетку. Для свойств строк и столбцов предстоит воспользоваться параметром subgrid. Он будет заимствовать параметры «родительского» грида.

В программном коде ситуация будет выглядеть следующим образом:

Верстка CSS и использование grid

Теперь можно оперировать компонентами E, F, G, чтобы задавать им разное положение в пределах границ D (который тоже стал выступать в качестве сетки). Вот пример, в котором E начинается от второй вертикальной линии грида до третьей:

Верстка CSS и использование grid

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

Кратко о важном

Теперь понятно, что собой представляет CSS-верстка при помощи сетки. Рекомендуется запомнить следующие главные моменты рассмотренной темы:

  1. Грид – это гибкая разметка, в которой компоненты размещаются в качестве таблицы, состоящей из ячеек. Их можно собрать в полноценные области.
  2. Грид включает в себя родительский контейнер и вложенные в него составляющие. Компоненты могут занимать одну или несколько ячеек, которые образовывают столбцы, колонки и области.
  3. Для создания грида в разметке требуется добавить строку display:grid.
  4. Для измерений у рассматриваемой сетки используется специальная единица измерения – фракция.
  5. Допускается настройка расположения компонентов грида несколькими способами: по горизонтальной или вертикальной осям, а также относительно всей области.

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