如何让图片的高度根据窗口变化,同时保持宽度不变?

前端开发 2026-07-11

我正在为我的网站制作一个404页面,我只需要背景图片的高度等于窗口高度。当前的CSS已经能做到这一点,但如果高度太短,它会裁剪图片的顶部和底部,而不是在两侧添加边距。我只需要图片的顶部和底部始终与窗口的顶部和底部对齐。你可以在这里查看页面及其HTML/CSS:mattmanz1.xyz/404。(像素艺术是我自己画的)

如果答案是“只学Bootstrap”,我也没问题。

这是CSS。body元素中没有任何内容

<style>
  html {
    height:100vh;
  }
  body {
   overflow:hidden;
   background-image: url("./lotnothot.png"); 
   background-repeat: no-repeat;
   background-position: center;
   background-size: cover;
   height: 100vh;
   margin: 0; 
   padding: 0;
   image-rendering: pixelated;

</style>

解决方案

这两个特殊设置 containcover 在保持纵横比的前提下,对高度和宽度进行等效处理。前者确保图像的任何部分都不会超出背景,后者确保背景的任何部分都不会超出图像。由于你在水平方向和垂直方向上需要不同的行为,这两者都不符合你的场景。

设置背景大小的另一种方式是用长度值,这些值也可以是百分比。两个长度依次给出宽度和高度。你要让高度填充背景,所以应将其设置为 100%。至于宽度,可以使用特殊值 auto,它基本等同于“为了保持纵横比所需的一切”。(附注:将高度和宽度都设为 auto 就是使用自然尺寸。)因此

   background-size: auto 100%;

给出了你想要的结果。宽度将根据需要被裁剪或留出边距以保持纵横比。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章