Вертикальное центрирование контента в div: без table-cell

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Один из быстрых и эффективных способов вертикального центрирования – использование CSS Flexbox. Вам потребуется установить стили родителя как display: flex;, justify-content: center; и align-items: center;. Вот пример исполнения этого кода:

CSS
Скопировать код
.center-flexbox {
  display: flex;      /* Превращаем наш контейнер в flex */
  justify-content: center;  /* Выполняем горизонтальное центрирование */
  align-items: center;  /* Выполняем вертикальное центрирование */
  height: 200px; /* Задаём высоту контейнера */
  width: 300px;  /* Задаём ширину контейнера */
}

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

HTML
Скопировать код
<div class="center-flexbox">
  <!-- Содержимое, которое требуется отцентрировать -->
</div>

Flexbox со своими возможностями поддерживается большинством современных браузеров, поэтому это хороший выбор для многих ситуаций.

Кинга Идем в IT: пошаговый план для смены профессии

Практические методы для добивания желаемых результатов

Прежде чем приступить к применению, рассмотрим несколько альтернативных методов вертикального центрирования.

Использование display: table-cell и vertical-align: middle

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

CSS
Скопировать код
.center-table {
  display: table-cell;  /* Отдаём дань уважения классике */
  vertical-align: middle;  /* Достижение вертикального выравнивания по центру */
  text-align: center;  /* Центрируем текст по горизонтали */
  height: 200px;  /* Задаём высоту элемента */
  width: 300px;  /* Задаём ширину элемента */
}

Разметка для этого метода будет выглядеть так:

HTML
Скопировать код
<div class="center-table">
  <!-- Контент, который нужно центрировать -->
</div>

Абсолютное позиционирование в сочетании с трансформацией

Еще один метод – это комбинация абсолютного позиционирования с использованием свойства transform:

CSS
Скопировать код
.center-positioned {
  position: absolute;  /* Определяем абсолютное позиционирование элемента */
  top: 50%;  /* Смещаем элемент на половину его высоты вверх */
  left: 50%;  /* Смещаем элемент на половину его ширины влево */
  transform: translate(-50%, -50%);  /* Корректируем позицию, центрируя элемент */
}

Пример HTML:

HTML
Скопировать код
<div class="relative-div">
  <div class="center-positioned">
    Содержимое, центрированное с некоторой долей опережения
  </div>
</div>

Выравнивание однострочного текста с помощью свойства line-height

Если вам нужно вертикально выровнять однострочный текст, вы можете использовать свойство line-height:

CSS
Скопировать код
.single-line-center {
  height: 100px;  /* Указываем высоту блока */
  line-height: 100px;  /* Выравниваем текст по высоте блока */
  text-align: center;  /* Центрируем текст по горизонтали */
}

Небольшое напоминание о кроссбраузерной совместимости

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

Визуализация

Небольшой визуальный обзор центрирования с помощью Flexbox:

Границы Div:
[🔲🔲🔲🔲🔲🔲]
[🔲             🔲]
[🔲   🖼️   🔲]
[🔲             🔲]
[🔲🔲🔲🔲🔲🔲]

Flexbox использует display: flex; и align-items: center; для безупречного центрирования содержимого.

Применение в практическом контексте

Рассмотрим дополнительные нюансы, которые могут быть полезны при вертикальном центрировании.

Адаптивный и ликвидный дизайн во взаимодействии

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

Код должен быть легко поддерживаемым

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

Полезные материалы

  1. Полное руководство по Flexbox | CSS-Tricks
  2. Как вертикально центрировать элемент | W3Schools
  3. html – Как вертикально центрировать текст при помощи CSS? | Stack Overflow
  4. Центрирование в неизвестности | CSS-Tricks
  5. Как всё центрировать с помощью CSS — выровнюйте Div, текст и прочие элементы | FreeCodeCamp
  6. Flexbox | Codrops

Завершение

Помните, что только практика приводит к совершенству. Если информация была полезной, не забудьте её оценить. И теперь, вперед, к вертикальному центрированию ваших div! Пусть ваш код будет творческим! 👨‍💻+👩‍💻=💻💛