Kedua solusi tersebut hanya membutuhkan dua elemen bersarang.
Pertama - Pemosisian relatif dan absolut jika kontennya statis (tengah manual).
.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/
atau untuk desain yang lancar - untuk penggunaan pusat konten yang tepat seperti contoh di bawah ini:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
Anda perlu menyetel 'min-height' jika konten melebihi 50% dari tinggi jendela. Anda juga dapat memanipulasi ketinggian ini dengan kueri media untuk perangkat seluler dan tablet. Namun hanya jika Anda bermain dengan desain responsif.
Saya kira Anda bisa melangkah lebih jauh dan menggunakan skrip JavaScript / JQuery sederhana untuk memanipulasi min-height atau fixed height jika ada kebutuhan karena alasan tertentu.
Kedua - jika konten dapat mengalir, Anda juga dapat menggunakan properti css tabel dan sel tabel dengan perataan vertikal dan rata tengah teks:
/*in a wrapper*/
display:table;
dan
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
Berfungsi dan menskalakan dengan sempurna, sering digunakan sebagai solusi desain web responsif dengan tata letak kisi dan kueri media yang memanipulasi lebar objek.
.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/
Saya lebih suka solusi tabel untuk pemusatan konten yang tepat, tetapi dalam beberapa kasus, pemosisian relatif absolut akan melakukan pekerjaan yang lebih baik terutama jika kita tidak ingin mempertahankan proporsi yang tepat dari penyelarasan konten.