Bunu biraz araştırdım ve bulduğuma göre dört seçeneğiniz var:
Sürüm 1: Tablo hücresi olarak görüntülenen üst div
display:table-cell
Üst div öğenizde kullanmak sizin için sorun değilse , aşağıdaki seçenekleri kullanabilirsiniz:
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:table-cell;
vertical-align:middle;
}
Canlı DEMO
Sürüm 2: Görüntüleme bloğu ve içerik görüntüleme tablo hücresine sahip ana div
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:block;
}
.content {
height: 100px;
width: 100px;
display:table-cell;
vertical-align:middle;
}
Canlı DEMO
Sürüm 3: Üst div kayan ve görüntü tablo hücresi olarak içerik div
.area{
background: red;
margin:10px;
text-align: center;
display:block;
float: left;
}
.content {
display:table-cell;
vertical-align:middle;
height: 100px;
width: 100px;
}
Canlı DEMO
Sürüm 4: Mutlak içerik konumu ile göreli üst bölüm konumu
Bu sürümde yaşadığım tek sorun, her özel uygulama için css oluşturmanız gerekecek gibi görünmesidir. Bunun nedeni, içerik div'in metninizin dolduracağı ayarlı yüksekliğe sahip olması gerektiğidir ve kenar boşluğu bundan çıkarılır. Bu konu demoda görülebilir. İçerik div'inizin yükseklik yüzdesini değiştirip -.5 ile çarparak her senaryo için manuel olarak çalışmasını sağlayabilirsiniz.
.area{
position:relative;
display:block;
height:100px;
width:100px;
border:1px solid black;
background:red;
margin:10px;
}
.content {
position:absolute;
top:50%;
height:50%;
width:100px;
margin-top:-25%;
text-align:center;
}
Canlı DEMO