Я предпочитаю использовать следующую технику, которая включает два контейнера:
Внешний контейнер:
- должен иметь
display: table;
Внутреннийконтейнер:
- должен иметь
display: table-cell;
- должен иметь
vertical-align: middle;
Поле содержимого:
- должноиметь
display: inline-block;
Вы можете добавить любой контент, который вы хотите, в блок контента, не заботясь о его ширине или высоте!
Кроме того, вы можете легко добавить горизонтальное центрирование, добавив text-align: center;
к вашему внутреннему контейнеру.
Демо:
body {
margin : 0;
}
.outer-container {
position : absolute;
display: table;
width: 100%;
height: 100%;
background: #ccc;
}
.inner-container {
display: table-cell;
vertical-align: middle;
}
.centered-content {
display: inline-block;
background: #fff;
padding : 20px;
border : 1px solid #000;
}
<div class="outer-container">
<div class="inner-container">
<div class="centered-content">
Malcolm in the Middle
</div>
</div>
</div>
См. Также эту скрипку !