修复我的游戏页移动端列表横向溢出并与画廊统一布局口径

- .my-game-list 改 grid-template-columns: minmax(0, 1fr),单列 auto 轨道不再被内容最小宽度撑开
- .my-game-card 加 min-width: 0 与 overflow: hidden,卡片可被压缩并裁掉溢出,与 .game-card 同口径
- .my-game-card__title 加 min-width: 0 与 overflow-wrap: anywhere,长标题不撑宽标题行
- pitfalls 记录该机制(auto 轨道最小尺寸 = 内容最小宽度 + nowrap 简介 + 缺 min-width:0)与 Chromium 夹具判据
- 里程碑文档补上该修复与 390/360 视口的测量结论
This commit is contained in:
2026-09-30 12:43:25 +08:00
parent e405a4f36f
commit 3bb1c28a51
3 changed files with 19 additions and 1 deletions
@@ -6108,3 +6108,12 @@ Cocos Creator 根目录由 `package.json.creator.version` 与普通 `assets/`
- **处理**:纵向对齐改用 `safe center`(先写 `align-content: center` / `align-items: center` 作旧浏览器回退,再写 `safe center`),溢出时退回 start;并把 `overflow-y: auto` 提到基础规则,让启动卡片成为唯一的内部滚动兜底,页面与 `.platform-tab-panel` 本身仍保持 `overflow: hidden`。
- **判据**:真实 Chromium 夹具(`tmp/launch-overflow-check`,把 `gameDistribution.css` 直接链进静态页面)在 `844x200` 下量:改回 `center` 时 `titleTopAtScrollZero = -20`(不可达),改成 `safe center` 后为 `+12`(可达),滚到底按钮同样可达;`390x844` 与 `1280x800` 正常视口不溢出,位置与改前一致。
- **关联**:`src/components/game-distribution/gameDistribution.css` 的 `.game-player-launch` 与两处媒体查询、`src/components/game-distribution/GamePlayPage.tsx`。
## 2026-09-30 单列 grid 的 auto 轨道被 nowrap 文本撑开,移动端面板只剩横向滚动
- **现象**:「我的游戏」页在 390/360 宽的手机上可以横向滑动,卡片比可视区宽(实测卡片 592px、可视 390px、面板横向可滚 230px),看起来也不居中;同一页面的画廊卡片却正常。
- **根因**:三件事叠在一起。① `.my-game-list` 是单列 grid,隐式列宽是 `auto`,而 auto 轨道的最小尺寸是**内容最小宽度**,不会被容器宽度压回去;② `.my-game-card`(flex 行)没有 `min-width: 0`,其最小内容宽度 = 封面 `8.5rem` + gap + 正文最小内容;③ 正文里的 `.my-game-card__summary` 是 `white-space: nowrap`,一条长且不可断行的简介就把最小内容宽度顶到 592px。画廊之所以正常,是因为 `.game-grid` 用 `repeat(n, minmax(0, 1fr))`,`.game-card` 又有 `min-width: 0; overflow: hidden`。
- **处理**:让「我的游戏」与画廊同口径——`.my-game-list` 改 `grid-template-columns: minmax(0, 1fr)`,`.my-game-card` 加 `min-width: 0; overflow: hidden`,标题加 `min-width: 0; overflow-wrap: anywhere`。改后 390/360 实测轨道 = 列表 = 卡片 = 可视宽,面板横向溢出 0。
- **顺带观察(本次未改)**:移动端面板左右留白本就不对称——左 12/24px(Tailwind `px-3`/`px-6`),右 0(`.platform-desktop-shell--workbench .platform-tab-panel` 与 `@media (max-width: 639px)` 都把 `padding-right` 压成 0),所以列表左右留白是 28/16。画廊完全相同,属既有全局口径,不在本次范围内。
- **判据**:真实 Chromium 静态夹具 `tmp/mygames-check/`(`tmp/` 已 gitignore,由 dev 栈 `http://127.0.0.1:10000/tmp/mygames-check/` 托管)同时渲染「我的游戏」和画廊两组卡片,量面板横向溢出与网格轨道宽度:改前 390/360 下轨道 591.891px、卡片 592px、面板横向可滚 230/260px;改后轨道 = 列表 = 卡片 = 可视宽、溢出 0。布局问题 jsdom 量不出来,这类回归目前靠这个夹具手工复核。
- **关联**:`src/components/game-distribution/gameDistribution.css`、`src/components/game-distribution/MyGamesPage.tsx`、`.game-grid`/`.game-card`。