Comme cela a été dit précédemment alignement vertical est pas vraiment pris en charge sur tout ce qui est pas une cellule de table.
Mais si vous essayez juste de centrer une seule ligne de texte que vous pouvez utiliser line-height
. Si vous définissez le line-height
au même niveau que le height
de l'élément et supprimez tout remplissage, le texte s'affichera au milieu de l'élément, comme s'il était aligné verticalement.
Donc, votre exemple qui suit fonctionnerait (si vous supprimez les styles par défaut en premier):
line-height:28px;
height:28px;
padding:0px;
Mais si le texte enveloppe à plus d'une ligne cette solution ne fonctionnera pas, le texte va soudainement devenir très espacé.
Pour une solution plus générale, il est préférable d'utiliser javascript pour calculer dynamiquement le remplissage requis pour l'élément particulier.
http://jsfiddle.net/PZ5AZ/1/. Nettoyer votre code n'est jamais mauvais. –