Если вы знаете высоту #contents
, вы можете настроить
#container{position:relative;}
#contents{
position:absolute;
top:50%; /*50% of parent*/
margin-top:/*negative one-half of container height i.e. if contaner is 4 em -2em*
}
Вы говорите, что не знаете высоту #contents
.
Другой вариант -чтобы установить отображение: на table-cell
и использовать vertical-align: middle
#container{
display: table-cell;
vertical-align: middle;
}
Но в зависимости от того, какие браузеры вы поддерживаете, это также может вызвать проблемы с отображением.
Чем большеВерный путь - это объединить первый вариант с некоторым jquery или javascript, чтобы найти высоту элемента и установить его margin-top:
content= document.getElementById('content')
content.style.marginTop = '-' + content.offsetHeight + 'px';
http://jsfiddle.net/h76sy/
РЕДАКТИРОВАТЬ: Извините, в моем javascript была ошибка, попробуйте сейчас