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

CSS Grid布局中图片无法垂直缩放导致网格超屏问题求助

问题根源

你遇到的问题是CSS Grid的默认最小尺寸规则和父容器约束缺失导致的:

  • CSS Grid项的默认min-height值为auto,这会让网格项优先匹配子元素(也就是你的图片)的原始高度,不会按照1fr的比例强制收缩,最终导致整个网格高度超出视口
  • 存放图片的.exercise容器没有设置任何尺寸约束,无法限制子元素图片的尺寸

修复方案

你只需要补充3处CSS规则即可解决问题:

  1. 给.client类添加min-height: 0,允许网格容器按比例收缩
  2. 给.exercise类添加宽高100%、min-height: 0和溢出规则,约束图片父容器尺寸
  3. 可选:如果不需要裁剪图片,可以把object-fit: cover换成object-fit: contain完整展示图片全部内容

修改后的完整CSS代码如下:

.container {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
}

.client {
  display: grid;
  border: 3px solid black;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 100px 1fr 1fr 1fr 1fr 100px;
  /* 新增规则:允许网格容器按分配比例收缩 */
  min-height: 0;
}

.client-title {
  grid-column: 1 / -1;
  grid-row: 1;
}

.client-description {
  grid-column: 1 / -1;
  grid-row: 6;
}

/* 新增exercise容器的约束规则 */
.exercise {
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.exercise-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:45:04