Это решение, для которого не требуется JavaScript (как в моем предыдущем решении).
Вы можете достичь того, чего хотите, назначив display: table-cell
содержащемуся div.Вот пример: http://jsbin.com/evuqo5/2/edit
Мне кажется, я должен предупредить вас, что вам нужно будет проверить это в каждом браузере, который вы намереваетесь поддерживать.Поддержка значения table-cell
является довольно новой, особенно в Firefox.Я знаю, что это работает в Firefox 4, но я не знаю ни одной из 3.x итераций.Вы также захотите протестировать в IE (я тестировал только в Chrome 10 и Firefox 4).
CSS:
div#container {
width: 700px;
height: 400px;
position: relative;
border: 1px solid #000;
display: table-cell;
vertical-align: middle;
}
div#container img {
margin: 0 auto;
display: block;
}
Вам не понадобится div#container img
стили, если вы не хотите выравнивать изображение по горизонтали.