Известно, что выровнить блок заданной ширины по центру по горизонтали можно с помощью свойства margin:0 auto. Но как поступить, если его еще надо выровнить по центру по вертикали.
На самом деле всё просто. Чтобы разместить по центру блок с заданной шириной и высотой, надо его абсолютно спозиционировать с left:50% и top:50% относительно экрана и отрицательным маргином сместить его назад на половину размера ширины и высоты дива.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Выравнивание блока по центру по вертикали и горизонтали</title> <style type="text/css"> html, body{ margin:0; padding:0; width:100%; height:100%; } #CenterBlock{ background:#F00; width:400px; height:400px; position:absolute; top:50%; left:50%; margin:-200px 0 0 -200px; } </style> </head> <body> <div id="CenterBlock"> Я отцентрированный блок </div> </body> </html>
Как видите, сначала мы задали html и body 100% высоту, чтобы они растянулись на весь экран, потом спозиционировали слой с left и top по 50% и отрицательным маргином сместили его назад на половинчатые размеры.
Источник: html-css.info