Эти два решения требуют только двух вложенных элементов.
Первый - относительное и абсолютное позиционирование, если контент статичен (ручной центр).
.black {
position:relative;
min-height:500px;
background:rgba(0,0,0,.5);
}
.message {
position:absolute;
margin: 0 auto;
width: 180px;
top: 45%; bottom:45%; left: 0%; right: 0%;
}
https://jsfiddle.net/GlupiJas/5mv3j171/
или для гибкого дизайна - вместо этого для точного информационного центра используйте следующий пример:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
Вам нужно установить min-height, если содержимое превышает 50% высоты окна. Этой высотой также можно управлять с помощью медиа-запроса для мобильных и планшетных устройств. Но только если Вы играете с адаптивным дизайном.
Я думаю, вы могли бы пойти дальше и использовать простой скрипт JavaScript / JQuery для управления минимальной или фиксированной высотой, если по какой-то причине в этом есть необходимость.
Во- вторых - если содержание жидкости у может также использовать таблицы и таблицы ячейки CSS свойства с вертикальным выравниванием и выравнивания текста по центру:
/*in a wrapper*/
display:table;
и
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
Отлично работает и масштабируется, часто используется в качестве адаптивного решения для веб-дизайна с макетами сетки и медиа-запросами, которые управляют шириной объекта.
.black {
display:table;
height:500px;
width:100%;
background:rgba(0,0,0,.5);
}
.message {
display:table-cell;
vertical-align: middle;
text-align: center;
}
https://jsfiddle.net/GlupiJas/4daf2v36/
Я предпочитаю табличное решение для точного центрирования контента, но в некоторых случаях относительное абсолютное позиционирование будет работать лучше, особенно если мы не хотим сохранять точную пропорцию выравнивания контента.