Bu iki çözüm sadece iki iç içe eleman gerektirir.
İlk - İçerik statikse göreli ve mutlak konumlandırma (manuel merkez).
.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/
veya akıcı tasarım için - tam içerik merkezi için bunun yerine aşağıdaki örneği kullanın:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
İçeriğin pencere yüksekliğinin% 50'sini aşması durumunda 'minimum yükseklik' ayarına ihtiyacınız vardır. Bu yüksekliği mobil ve tablet cihazlar için medya sorgusuyla da değiştirebilirsiniz. Ancak yalnızca duyarlı tasarımla oynarsanız.
Sanırım daha ileri giderek basit JavaScript / JQuery komut dosyasını kullanarak minimum yüksekliği veya sabit yüksekliği herhangi bir nedenle bir ihtiyaç olması durumunda değiştirebilirsiniz.
İkincisi - içerik akıcıysa, dikey hizalama ve metin hizalı ortalanmış tablo ve tablo hücresi css özelliklerini de kullanabilirsiniz:
/*in a wrapper*/
display:table;
ve
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
Mükemmel şekilde çalışır ve ölçeklenir, genellikle nesnenin genişliğini değiştiren ızgara düzenleri ve medya sorgusu ile duyarlı web tasarım çözümü olarak kullanılır.
.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/
Tam içerik merkezleme için tablo çözümünü tercih ediyorum, ancak bazı durumlarda göreceli mutlak konumlandırma, özellikle içerik hizalamasının tam oranını korumak istemiyorsak daha iyi iş çıkaracaktır.