Je sais que cette question a été posée il y a plus de deux ans, mais pour les 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 nous contentons d'ajouter un line-height
égale à celle de la hauteur de la div. L'avantage est que vous pouvez maintenant modifier la propriété d'affichage de la div comme bon vous semble, pour qu'elle devienne inline-block
par exemple, et son contenu restera centré verticalement. La solution acceptée consiste à traiter la div comme une cellule de tableau. Cela devrait fonctionner parfaitement, quel que soit le navigateur.
Le seul autre avantage est qu'il n'y a qu'une règle CSS de plus au lieu de deux :)
Santé !
1 votes
À ma connaissance, la réponse est "vous ne pouvez pas", et la façon la plus paresseuse de contourner le problème est d'utiliser une simple fonction
<table>
et appliquervalign='middle'
à son<td>
s.