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

如何将单张大图覆盖在多个相邻小div上且保持响应式

你使用background-attachment: fixed失效的原因是该属性会让背景图相对于浏览器视口固定位置,页面滚动时背景图不会跟随页面元素移动,自然会出现错位。以下是两种符合需求的响应式实现方案:

方案1:每个灰色格子单独适配图片

适合每个格子显示独立图片,或者所有格子显示同一张图片的场景,图片会跟随格子滚动,自动适配格子大小。
修改CSS如下:

#container {
  background-color:yellow;
  text-align: center;
}

#container .row .smaller {
  background: white;
  border:  1px solid grey;        
  display: inline-block;
  width: 20%;
  /* 固定宽高比,保证响应式下格子形状不变,可按需调整比例 */
  aspect-ratio: 1/1;
  vertical-align: middle;
}

#container .row .smaller.image {
  /* 替换为你的图片地址 */
  background-image: url("你的图片路径");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  /* 不需要保留浅灰色底色可删除下面这句 */
  background-color: lightgrey;
}

如果需要兼容不支持aspect-ratio的旧浏览器,可以把该属性替换为以下代码实现相同效果:

#container .row .smaller {
  height: 0;
  padding-top: 20%;
}

方案2:单张大图整体覆盖所有灰色格子

适合用一张完整的大图刚好覆盖9个灰色格子区域的场景:
首先在HTML的#container容器最开头新增图片元素:

<div id='container'>
  <img src="你的大图路径" class="cover-img" alt="覆盖图">
  <!-- 原有row代码保持不变 -->
  <div class='row'>...</div>
  ...
</div>

新增对应CSS:

#container {
  background-color:yellow;
  text-align: center;
  /* 开启相对定位作为图片的定位父级 */
  position: relative;
}

#container .cover-img {
  position: absolute;
  /* 位置偏移可根据实际布局微调,刚好覆盖灰色区域即可 */
  top: 0;
  left: 21%;
  width: 60%;
  height: 75%;
  object-fit: cover;
  /* 如果需要保留格子内的数字显示在图片上方,将z-index改为-1即可 */
  z-index: 1;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:54:01