better css positioning based on http://davidwalsh.name/css-vertical-center