Выровнять текст по центру (по вертикали) у div с display: inline-block

335
01 января 2018, 09:54

Выровнять текст по центру (по вертикали) у div с display: inline-block. При использовании vertical-align меняется положение самого блока. Возможно ли это сделать без обертывания текста в <p>?

Answer 1

div { 
  width: 100px; 
  height: 100px; 
  padding: 5px; 
  display: inline-block; 
  vertical-align: top; 
  border: 1px solid #f00; 
  text-align: center; 
} 
 
div:after { 
  content: ''; 
  height: 100%; 
  display: inline-block; 
  vertical-align: middle; 
}
<div>text</div>

Answer 2

Возможно

Мой любимый костыль, сам пользуюсь

<style>
.div-table{
    display: table;
    width: 100%;
    height: 100%;
}
.div-table-cell{
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
</style>

В любой нужный элемент вписывается div-table, в него div-table-cell, и вот в него уже всё, что нужно разместить по центру по вертикали

<div>
   <div class="div-table">
      <div class="div-table-cell">
         ...что угодно, не только текст
      </div>
   </div>
<div>
Answer 3

vertical-align:

Оно применяется только к строчным элементам inline или строчным блокам inline-block. Оно влияет на выравнивание самого элемента, а не его содержимого (кроме случаев, когда применяется к ячейкам таблицы).
Когда оно применяется к ячейке таблицы, выравнивание влияет на содержимое ячейки, а не на неё саму.

READ ALSO
Вопрос по индексации таблиц MySql.

Вопрос по индексации таблиц MySql.

Есть такая таблица:

240
Консольная игра ошибка на C#

Консольная игра ошибка на C#

Всех поздравляю с наступающим!!! Учусь C# и вот решил написать консольную игру простенькую, подскажите пожалуйста что в моём коде не так то есть...

274
Вывод строк в combobox

Вывод строк в combobox

Столкнулся с проблемой с combobox, не выводится строка с названием беседы ВК

300
Быстрый перенос директорий

Быстрый перенос директорий

Как можно достичь быстрого переноса директорий из одного места на диске в другое место на этом же диске?

245