This has been asked enough times here as well as all over the Internet.
A quick search will bring you tons of results. Anyhow, my preferred way of doing this is to use display: table-cell;
and vertical-align: middle;
. See this page for an example. (Beware that this doesn’t work on Internet Explorer 6.)