Обновление 2018-04-11
Вот решение без Javascript, только для CSS . Изображение будет динамически отцентрировано и изменено по размеру в соответствии с окном.
<html>
<head>
<style>
* {
margin: 0;
padding: 0;
}
.imgbox {
display: grid;
height: 100%;
}
.center-fit {
max-width: 100%;
max-height: 100vh;
margin: auto;
}
</style>
</head>
<body>
<div class="imgbox">
<img class="center-fit" src='pic.png'>
</div>
</body>
</html>
[Другое, старое] решение, использующее JQuery, устанавливает высоту контейнера изображения (body
в приведенном ниже примере), чтобы свойство max-height
на изображении работало, как ожидалось. Изображение также будет автоматически изменено при изменении размера окна клиента.
<!DOCTYPE html>
<html>
<head>
<style>
* {
padding: 0;
margin: 0;
}
.fit { /* set relative picture size */
max-width: 100%;
max-height: 100%;
}
.center {
display: block;
margin: auto;
}
</style>
</head>
<body>
<img class="center fit" src="pic.jpg" >
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="JavaScript">
function set_body_height() { // set body height = window height
$('body').height($(window).height());
}
$(document).ready(function() {
$(window).bind('resize', set_body_height);
set_body_height();
});
</script>
</body>
</html>
Примечание: пользователь gutierrezalex упаковал очень похожее решение в качестве плагина JQuery на этой странице.