Saya tahu pertanyaan ini telah diajukan lebih dari dua tahun yang lalu, tetapi untuk pemirsa baru-baru ini, berikut adalah solusi alternatif, yang memiliki beberapa keunggulan dibandingkan solusi Marc-François:
div {
height: 50px;
border: 1px solid blue;
line-height: 50px;
}
Di sini kita hanya menambahkan yang line-heightsama dengan ketinggian div. Keuntungannya adalah Anda sekarang dapat mengubah properti tampilan dari div sesuai keinginan Anda, inline-blockmisalnya, dan isinya akan tetap berada di tengah secara vertikal. Solusi yang diterima mengharuskan Anda memperlakukan div sebagai sel tabel. Ini harus bekerja dengan sempurna, lintas browser.
Satu-satunya keuntungan lain adalah hanya satu aturan CSS lagi, bukan dua :)
Bersulang!
<table>dan menerapkannyavalign='middle'pada<td>s.