Anda bisa menggunakan line-height: 50px;
, Anda tidak perlu di vertical-align: middle;
sana.
Demo
Di atas akan gagal jika Anda memiliki banyak baris, jadi dalam hal ini Anda dapat membungkus teks Anda menggunakan span
dan daripada menggunakan display: table-cell;
dan display: table;
bersama vertical-align: middle;
, juga jangan lupa untuk menggunakan width: 100%;
untuk#abc
Demo
#abc{
font:Verdana, Geneva, sans-serif;
font-size:18px;
text-align:left;
background-color:#0F0;
height:50px;
display: table;
width: 100%;
}
#abc span {
vertical-align:middle;
display: table-cell;
}
Solusi lain yang bisa saya pikirkan sini adalah dengan menggunakan transform
properti dengan translateY()
mana Y
jelas singkatan Y Axis. Ini cukup lurus ke depan ... Yang perlu Anda lakukan adalah mengatur posisi elemen ke absolute
dan kemudian posisi 50%
dari top
dan menerjemahkan dari porosnya dengan negatif-50%
div {
height: 100px;
width: 100px;
background-color: tomato;
position: relative;
}
p {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Demo
Perhatikan bahwa ini tidak akan didukung di browser lama, misalnya IE8, tetapi Anda dapat membuat IE9 dan versi browser lama Chrome dan Firefox lainnya dengan menggunakan -ms, -moz
dan -webkit
prefiks masing-masing.
Untuk informasi lebih lanjut transform
, Anda dapat merujuk di sini .