The line-height property usually takes care of vertical alignment, but not with inputs. Is there a way to automatically center text without playing around with padding?
The inner vertical alignment will depend on font height and input height, so, it can be adjusted using padding !!!
Try some like :
.InVertAlign { height: 40px; line-height: 40px; font-size: 2em; padding: 0px 14px 3px 5px; }
...
Remember to adjust the values on css class according to your needs !