foo.css
#container {
display: table;
width: 100%;
height: 100%;
}
#position {
display: table-cell;
width: 100%;
text-align: center;
vertical-align: middle;
}
foo.html
<html>
<head>
<link rel="stylesheet" href="foo.css" type="text/css">
<!--[if IE]>
<style type="text/css">
#container {
position: relative;
}
#position {
position: absolute; top: 50%;
}
#content {
position: relative;
top: -50%;
}
</style>
<![endif]-->
</head>
<body>
<div id="container">
<div id="position">
<div id="content">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec laoreet egestas mi. Aliquam erat volutpat. Aliquam erat volutpat. Suspendisse potenti. Suspendisse potenti. Vestibulum mi nibh, hendrerit nec, feugiat vitae, feugiat a, nisl.
</div>
</div>
</div>
</body>
</html>
демо
http://www.vdotmedia.com/demo/css-vertically-center.html
Примечание: Горизонтальное центрирование должно быть без пота, чтобы справиться самостоятельно.
РЕДАКТИРОВАТЬ: Я нашел другое демо
РЕДАКТИРОВАТЬ: Чтобы это решение для работало в HTML5 , вам нужно добавить html, body { height:100% }
в ваш CSS (и, очевидно, <!DOCTYPE HTML>
в начале вашего HTML-кода).