О сайтеПравилаКонтакты
  • Крипто
  • Новости
  • Статьи
  • Люди
  • Теги
» Статьи » Разработка » Простой способ выровнять элементы в CSS по центру вертикально и горизонтально
  • Инструменты
  • Заработок
  • Раскрутка
15 июля 2018 . Антон Кулешов

Простой способ выровнять элементы в CSS по центру вертикально и горизонтально

Flexbox - относительно новый инструмент в мире CSS, и мы продолжаем находить для него все более интересные места для использования. Первостепенная задача этого дополнения - упростить расположение элементов и выровнять их в CSS по центру экрана, а также отделить друг от друга динамические блоки, размер которых не известен (отсюда и название «flex» - «гибкий»).

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

Этот способ работает во всех современных браузерах - IE10 +, Chrome, Firefox и Safari (с -webkit-префиксом). Полную таблицу совместимости смотрите здесь.

HTML верстка

Идея, конечно, полностью заключается в использовании flexbox. Мы изначально создаем контейнер, в котором мы хотим, чтобы все элементы CSS были расположены по центру:

<div class="container">
    <!-- Любой контент здесь будет центрирован -->
    <img src="fireworks.jpg" alt="fireworks">
</div>

Вы можете разместить этот контейнер div в любом месте. В приведенном выше примере мы сделали это, взяв всю ширину и высоту страницы.

CSS стили

Как и говорилось ранее, мы будем использовать только три строки кода. Вот они:

.container {
    display: flex;
    justify-content: center;
    align-items: center;
}

Каждый «гибкий» контейнер имеет две оси для позиционирования элементов. Основная ось выражается свойством flex-direction (может быть row или column). Опустив это правило, мы оставили flex-direction по умолчанию - row.

Теперь все, что нам нужно сделать, - это центрировать обе оси. Сделать это очень просто:

  • Преобразуйте тип отображения в flex, чтобы активировать режим flexbox;
  • justify-content определяет, где элементы гибкости будут выровняться в соответствии с основной осью (горизонтально в нашем случае);
  • align-items делает то же самое с осью, перпендикулярной основной (вертикально в нашем случае).

Теперь, когда мы указали правила вертикального и горизонтального выравнивания элементов CSS по центру, любой элемент, который мы добавляем внутри контейнера, будет располагаться идеально посередине. Нам не нужно заранее знать его размеры, браузер сам сделает всю нужную работу!

Резюмируем

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

1. Полное руководство по Flexbox – здесь;

2. MDN: Использование гибких блоков CSS – здесь.

#Flexbox
5 908 2
Перевод
Антон Кулешов
Flexbox несколько полезных примеров для работы Простейший способ создать отзывчивые заголовки Самый простой способ создания боковых панелей на CSS, одинаковой высоты Лучший способ прижать футер используя flexbox Создание адаптивного раздела комментариев с помощью flexbox
Alexey Zubarev
Alexey Zubarev
16 июля 2018
По-моему самое лучшее руководство по этому поводу - http://paratapok.ru/frontend/5148_css3-flexbox/ И наглядно, и исходный код через инструменты разработчика легко посмотреть. Самое главное примеры живые мне понравились. Вообщем, советую
Антон Кулешов
Антон Кулешов
17 июля 2018
Полезная ссылочка, добавил себе в закладки.

Простейший способ создать отзывчивые заголовки

Лучший способ прижать футер используя flexbox

Популярное
1 Пишем парсер контента на PHP2 Кликджекинг как соцфишинг, пишем скрипт для получения id пользователя вконтакте3 Лучший способ прижать футер используя flexbox4 Пишем первый модуль для 1С-Битрикс с использованием ядра D75 Делаем подгрузку контента при прокрутке страницы
Обратите внимание