Estou ciente de que essa pergunta foi feita há mais de dois anos, mas para qualquer espectador recente, aqui está uma solução alternativa, que tem algumas vantagens sobre a solução de Marc-François:
div {
height: 50px;
border: 1px solid blue;
line-height: 50px;
}
Aqui, simplesmente adicionamos um line-height
igual à altura do div. A vantagem é que agora você pode alterar a propriedade de exibição da div conforme desejar, para, inline-block
por exemplo, e seu conteúdo permanecerá centralizado verticalmente. A solução aceita requer que você trate o div como uma célula de tabela. Isso deve funcionar perfeitamente, em vários navegadores.
A única outra vantagem é que é apenas mais uma regra CSS em vez de duas :)
Felicidades!
<table>
e aplicarvalign='middle'
aos seus<td>
.