Как центрировать в CSS через Flexbox, Grid, Position и Margin
Рассказываем, как выровнять по центру в CSS блоки и их содержимое при помощи свойство Flexbox, Grid, Position и Margin.
15К открытий19К показов
Сегодня мы покажем, как можно центрировать и выравнивать содержимое с помощью CSS. Ещё мы рассмотрим разные техники выравнивания.
Это — перевод оригинальной статьи на freeCodeCamp от автора Joy Shaheb.
Ещё у нас есть видеоверсия урока от автора (осторожно, английский язык):
Что такое главная и поперечная оси в CSS
Прежде всего, давайте разберемся, что такое:
- Главная ось.
- Поперечная ось.
Линия, проходящая по экрану слева направо — это и есть главная ось. Вы также можете называть её осью Х или горизонтальной линией.
Линия, которая проходит сверху вниз — это поперечная ось. Также её можно назвать осью Y или вертикальной линией.
Настройка проекта
Чтобы поэкспериментировать со всеми свойствами и значениями, напишем следующий код в редакторе.
HTML
Запишите этот код внутри тега body:
CSS
Очистите стили браузера по умолчанию, чтобы мы получали точные результаты.
Выберите класс .container
и установите его значение 100vh
. В противном случае мы не сможем увидеть наш результат на вертикальной оси:
Стилизуйте класс .box-1
следующим образом:
Все готово, теперь начнем кодить!
Как использовать Flexbox для центрирования чего-либо
Мы можем использовать Flexbox для выравнивания div
по осям X и Y.
Для этого нам нужно записать свойство display: flex;
внутри класса .container
:
Мы поэкспериментируем с этими двумя свойствами:
- justify-content;
- align-items.
Как отцентрировать что-либо по горизонтали с помощью Flexbox
Мы используем свойство justify-content
, используя следующие значения.
Напишите следующий код.
Результат будет выглядеть следующим образом.
Как выровнять что-либо по вертикали с помощью Flexbox
Мы используем свойство align-items
, используя следующие значения.
Чтобы поэкспериментировать со значениями, напишите следующий код.
Результат выглядит так:
Как центрировать div по горизонтали и вертикали с помощью Flexbox
Мы объединим свойства justify-content
и align-items
, чтобы выровнять div
как по горизонтали, так и по вертикали.
Напишите следующий код.
Результат выглядит следующим образом.
Вы можете ознакомиться с этой шпаргалкой, чтобы узнать больше о различных свойствах Flexbox.
Как использовать CSS Grid для центрирования чего-либо
Используем grid
для выравнивания содержимого div
по осям X и Y.
Для этого нужно записать свойство display: grid;
внутри класса .container
:
Поэкспериментируем с этими двумя свойствами:
- justify-content;
- align-content.
В качестве альтернативы можно использовать эти свойства:
- justify-items;
- align-items.
Как выровнять что-либо по горизонтали с помощью CSS Grid
Используем свойство justify-content
.
Напишите такой код:
Вот результат:
Как выровнять что-либо по вертикали с помощью CSS Grid
Мы используем свойство align-content
, используя следующие значения.
Напишите этот код:
Вот, каким будет результат:
Как выровнять div по горизонтали и вертикали с помощью CSS Grid
Объединим свойства justify-content
и align-content
, чтобы выровнять div
как по горизонтали, так и по вертикали.
Напишите следующий код:
Результат, который должен получиться:
Альтернативный способ
Вы можете использовать свойства justify-items
и align-items
и получить те же результаты:
Свойство place-content в CSS Grid
Это сокращение двух свойств CSS Grid:
- justify-content;
- align-content.
Получаем тот же результат:
Как использовать свойство CSS Position для центрирования чего-либо
Это комбинация этих свойств:
- position;
- top, left;
- transform, translate.
Напишите следующий код:
Вместе с этим кодом в CSS:
Что такое центральная точка div
По умолчанию это — центральная точка div.
Вот почему мы видим такое странное поведение блока при попытке выровнять его.
Обратите внимание, что на изображении выше блок находится не по центру.
Написав эту строку:
Мы решим проблему и получим следующий результат.
Что такое свойство Translate в CSS
Translate – это сокращение 3 свойств:
- translateX;
- translateY;
- translateZ.
Как выровнять div по горизонтали с помощью свойства CSS Position
Используем свойство left
внутри класса .box-1
.
Вот результат:
Как выровнять div по вертикали с помощью свойства CSS Position
Используем свойство top
внутри класса .box-1
.
Результат:
Как центрировать div по горизонтали и вертикали с помощью свойства CSS position
Чтобы достичь этого результата, мы объединим вместе свойства:
- top, left;
- transform, translate.
Результат:
Как использовать свойство margin для центрирования чего-либо
Свойство margin является сокращением 4 свойств:
- margin-top, margin-bottom;
- margin-left, margin-right.
Напишите этот код:
Как выровнять div по горизонтали с помощью свойства CSS margin
Используем свойство margin
внутри класса .box-1
. Напишите этот код:
Вот, как будет выглядеть результат:
Как выровнять div по вертикали с помощью свойства CSS margin
Снова используем margin
внутри класса .box-1
. Напишите следующий код:
Результат:
Как выровнять div по горизонтали и вертикали с помощью свойства CSS margin
И ещё разок используем margin
внутри класса .box-1
. Напишите такой код:
Результат будет выглядеть так:
Заключение
Теперь вы можете уверенно выравнивать или центрировать содержимое, используя любой из этих четырех методов в CSS.
Возьмите вашу медаль за то, что дочитали статью до конца!
15К открытий19К показов