La mauvaise habitude est de vouloir utiliser la propriété "vertical-align".
Or vertical align n'est pas prévu pour aligner un élément quelconque dans un bloc, mais un élément en-ligne dans un autre élément en-ligne (par exemple une image à côté d'un texte)… ou dans un élément de type table-cell (voir exemple plus bas).
-> http://www.yoyodesign.org/doc/w3c/css2/visudet.html#propdef-vertical-align
Voici les 5 pistes actuelles.
Elles sont parfois approximatives pour la bonne et simple raison que le Web n'est pas un média paginé contrairement au média d'impression, et que le concepteur doit adapter ses besoins au média et non l'inverse.
6- Dernière solution, si toutes les autres ne conviennent pas et si la compatibilité avec IE est nécessaire : utiliser une cellule de tableau sur laquelle vertical-align fonctionnera. Eh oui, nous ne sommes pas des intégristes non-plus !