C’est LA galère du CSS (lorsqu’on cherche à appliquer le centrage vertical sur des objets de hauteur variable).
voir l’article d’Alsacreations sur le sujet
Le plus intéressant est parfois de se résoudre à recourir à une cellule de tableau pour centrer verticalement un élément – parfois d’ailleurs la seule façon d’obtenir exactement le résultat voulu :
<table> <tr><td style="vertical-align:middle"><img src="image.jpg"></td></tr> </table>