Разберу каждый из способов выровнять блок `div` по центру высоты — с примерами кода.

## 1. Использование `line-height`

Подходит **только для однострочного текста** внутри блока. Высота блока и `line‑height` должны совпадать.

Код
<div class="parent">  
<div class="child">Текст</div>  
  </div>


Код
<style>.parent {  
height: 100px;  
line-height: 100px; /* равна высоте родителя */  
  }  

  .child {  
text-align: center; /* для горизонтального центрирования */  
  }</style>


**Минусы:** при переносе текста на несколько строк выравнивание ломается.

## 2. Использование Flexbox

Самый популярный и надёжный способ.

Код
<div class="parent">  
<div class="child">Блок с текстом</div>  
  </div>


Код
<style>.parent {  
height: 100px;  
display: flex;  
align-items: center; /* вертикальное центрирование */  
/* для горизонтального + вертикального: */  
justify-content: center;  
  }</style>


**Плюсы:**
* работает с любым количеством контента;
* не требует знания высоты дочернего элемента;
* поддерживается всеми современными браузерами.


## 3. Использование Grid

Аналогичен Flexbox по простоте и надёжности.

Код
<style>.parent {  
height: 100px;  
display: grid;  
align-items: center; /* вертикальное */  
justify-items: center; /* горизонтальное */  
/* или одной строкой: */  
place-items: center;  
  }</style>


Альтернативный вариант через `margin: auto` (работает, только если в контейнере один элемент):

Код
<style>.parent {  
height: 100px;  
display: grid;  
  }  
  .child {  
margin: auto;  
  }[</style>/code]  

  [b]## 4. Использование позиционирования[/b]  
  [i]Классический способ, который работает даже в старых браузерах.[/i]  

  [code]<style>.parent {  
height: 100px;  
position: relative;  
  }  

  .child {  
position: absolute;  
top: 50%;  
transform: translateY(-50%); /* сдвигает элемент вверх на половину его высоты */  
  }</style>


Для **полного центрирования** (по горизонтали и вертикали) добавьте:

Код
left: 50%;  
transform: translate(-50%, -50%);


**Варианты без `transform` (требуют знания размеров):**

**Отрицательный `margin`**: установите `margin-top` равным половине высоты дочернего блока.


**Ячейка таблицы**: задайте родителю display: table-cell и vertical-align: middle. Менее гибкий способ.

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
HTMLSTART » CSS3 - JS - SVG Примеры » CSS3 - примеры, статьи » Как выровнять блок div по центру высоты 4 способа