Je sais que cette question a été posée il y a plus de deux ans, mais pour les téléspectateurs récents, voici une solution alternative, qui présente quelques avantages par rapport à la solution de Marc-François:
div {
height: 50px;
border: 1px solid blue;
line-height: 50px;
}
Ici, nous ajoutons simplement un line-height
égal à celui de la hauteur du div. L'avantage étant que vous pouvez maintenant changer la propriété d'affichage du div comme bon vous semble, inline-block
par exemple, et son contenu restera centré verticalement. La solution acceptée nécessite que vous traitiez le div comme une cellule de tableau. Cela devrait fonctionner parfaitement, multi-navigateur.
Le seul autre avantage étant qu'il ne s'agit que d'une règle CSS de plus au lieu de deux :)
À votre santé!
<table>
et de l'appliquervalign='middle'
à ses<td>
s.