Столкнулся с проблемой выравнивания по вертикали. Решение и код CSS

Выравнивание по горизонтали


По горизонтали выравнивается всё просто, достаточно в CSS прописать код
.NaschClass{
margin: 10px auto;
}

10px — отступ сверху, auto — со всех остальных сторон.

Выравнивание по вертикали


Вот здесь пришлось помучиться, поискать.
<!doctype html>
<head>
<title>Выравнивание по вертикали</title>
<style type="text/css">html, body {
height: 100%; background: black
}
#msg {
width: 300px;
line-height: 100px;
position: absolute;
left: 50%; top: 50%;
margin: -50px 0 0 -150px;
background: yellow;
font-weight: bold;
text-align: center }</style>
</head>
<div id="msg">Under construction</div>


left: 50%; top: 50% выравнивают левый верхний угол div'а по центру страницы — полширины и полвысоты окна, а чтобы получить «настоящую» центровку, нужно от текущей позиции дива отнять его личные полвысоты и полширины. это делается через margin-top: -[полвысоты]px; margin-left: -[полширины]px.