gpt4 book ai didi

html - 如何调整图像大小以适应浏览器窗口?

转载 作者:技术小花猫 更新时间:2023-10-29 11:28:57 25 4
gpt4 key购买 nike

这看起来微不足道,但在所有研究和编码之后我无法让它工作。条件是:

  1. 浏览器窗口大小未知。因此,请不要提出涉及绝对像素大小的解决方案。
  2. 图像的原始尺寸未知,可能适合也可能不适合浏览器窗口。
  3. 图像垂直和水平居中。
  4. 必须保留图像比例。
  5. 图像必须在窗口中完整显示(无裁剪)。
  6. 我不希望出现滚动条(如果图像适合,它们不应该出现。)
  7. 图像会在窗口尺寸发生变化时自动调整大小,以占据所有可用空间而不会大于其原始大小。

基本上我想要的是:

.fit {
max-width: 99%;
max-height: 99%;
}
<img class="fit" src="pic.png">

上面代码的问题在于它不起作用:图片通过添加垂直滚动条占据了它需要的所有垂直空间。

我可以使用 PHP、Javascript、JQuery,但我会选择纯 CSS 解决方案。我不在乎它是否在 IE 中不起作用。

最佳答案

更新 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>

[other, old] 解决方案,使用 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 插件非常相似的解决方案。

关于html - 如何调整图像大小以适应浏览器窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com