Ну ... это сложно.Лучший способ, который я нашел, как это сделать - это поместить ваш контент в одну таблицу ячеек и установить свойства выравнивания по вертикали и горизонтали в .... средний и центральный, как мне кажется?Но в любом случае это может быть сделано.Я поэкспериментирую с этим и посмотрю, смогу ли я собрать пример.
РЕДАКТИРОВАТЬ:
Хорошо, поэтому первое, что я бы посоветовал, - это позволить браузеру пропорционально изменить размеры.Вам не нужно изменять размер div, только изображение.Вы также можете позволить браузеру определить вертикальное выравнивание, что гораздо лучше, чем его вычисление.Это можно сделать, поместив содержимое в одну ячейку таблицы.Пример кода ниже - это чистый HTML и CSS.Вы можете добавить что-то такое, что вам уже нужно переключать высоту и ширину изображения между 100% автоматически и автоматически 100% в зависимости от высоты изображения и высоты окна.Надеюсь, это немного приблизит вас к цели.
<table style="background-color:#ddd; width:100%; height:100%">
<tr>
<td align="center">
<div id="fulldiv">
<img style="width:100%" id="photo" src="http://assets.perfectlytimedphotos.com/hashed_silo_content/silo_content/21003/resized/coke.jpg">
</div>
</td>
</tr>
</table>