You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现DIV容器在调整窗口宽高时均等比例缩放的CSS方案

CSS实现容器双向等比例缩放方案

你想要实现容器在调整浏览器宽、高时都能保持固定比例缩放,可以直接用以下方案,比你现有写法更简洁:

推荐方案(兼容Chrome 88+/Firefox 89+/Safari 15.4+,覆盖95%以上用户场景)

直接用CSS原生aspect-ratio属性指定宽高比,搭配min()函数同时绑定视口宽高:

#container {
  /* 取两个计算值中更小的一个,确保容器永远不会超出视口范围 */
  width: min(100vw, calc(100vh / 1.72));
  /* 直接指定宽高比为 1:1.72,浏览器自动计算对应高度,无需手动写height */
  aspect-ratio: 1 / 1.72;
  background: red;
  /* 可选:需要容器水平居中可加以下属性 */
  margin: 0 auto;
}

旧浏览器兼容方案(支持所有现代浏览器及IE11)

如果需要兼容不支持aspect-ratio的旧版本浏览器,可以用传统padding百分比方案实现:

#container {
  width: min(100vw, calc(100vh / 1.72));
  position: relative;
  background: red;
  margin: 0 auto;
}
#container::before {
  content: "";
  display: block;
  /* padding-top百分比相对于容器宽度,172%对应宽高比1:1.72 */
  padding-top: 172%;
}
/* 如果容器内有内容,需要给内容加绝对定位铺满容器 */
#container .content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

对应的HTML结构调整为:

<div id="container">
  <div class="content">
    <!-- 容器内原有内容放在这里 -->
  </div>
</div>

原代码问题说明

你原有代码的高度只和vw(视口宽度)单位绑定,完全没有关联vh(视口高度),所以调整浏览器窗口高度时不会触发高度变化。上述两种方案都同时引入了vw和vh两个单位做边界判断,不管调整窗口宽度还是高度都会触发缩放。

内容的提问来源于stack exchange,提问作者Filip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:18:03