updated vertical centering to work with absolute and fixed positioned elements