Вертикальное выравнивание - сложная задача, и я не знаю, есть ли один проверенный способ.Самая надежная техника, доступная в последние пару лет, - это использование таблицы CSS.Единственным недостатком этого подхода является то, что он может не работать на устаревших браузерах.Тем не менее, по моему опыту, это, вероятно, лучшее общее решение.См. Мой пример ниже:
<style type="text/css">
#container {
display:table;
border-collapse:collapse;
height:200px;
width:100%;
border:1px solid #000;
}
#layout {
display:table-row;
}
#content {
display:table-cell;
text-align:center;
vertical-align:middle;
}
</style>
<div id="container">
<div id="layout">
<div id="content">
Hello world!
</div>
</div>
</div>
Вот jsFiddle: http://jsfiddle.net/aGKfd/2/
Есть другая техника, но она не так надежна, как описанная выше.Он включает в себя два контейнера, причем положение внешнего контейнера установлено на относительное, а внутреннее на абсолютное.Используя абсолютное позиционирование на внутреннем контейнере, вы можете приблизиться, но для его правильной настройки требуется некоторая настройка:
<style type="text/css">
#vertical{
position:absolute;
top:50%;
left:0;
width:100%;
text-align:center;
}
#container {
position:relative;
height:200px;
border:1px solid #000;
}
</style>
<div id="container">
<div id="vertical">
Hello world!
</div>
</div>
Вот jsFiddle: http://jsfiddle.net/6SWPe/