title: [ISSUE-0007] 设置页右侧出现两个滚动条 description: "设置的右侧两个滑动的??" tags: [issue, settings] created: 2026-05-26 updated: 2026-05-26 type: issue status: fixed severity: medium fixed_version: v0.10.21 history: recurring # 历史曾两度反复(v0.10.18 修过 → v0.10.21 真修),保留警示
[ISSUE-0007] 设置页右侧出现两个滚动条¶
相关源码:
src/sections/settings/view/settings-view.tsx
用户感知的现象¶
"设置的右侧两个滑动的??"
设置页右侧有两个独立的滚动条(外层窗口滚动条 + 内部 CardContent 的滚动条)。同时滚动很奇怪,用户不知道用哪个。
根因分析¶
Card / CardContent 设了固定高度 + overflow: auto,但外层 window/Container 又有自己的滚动 → 双滚动条同时存在。
修复方案¶
去掉内层 overflow,统一由外层处理;或让内层 fixed height + 外层 no-scroll。具体改完确认。
改动文件¶
| 文件 | 改了什么 |
|---|---|
src/sections/settings/view/settings-view.tsx |
Card 改 display:flex; flexDirection:column;CardContent 用 flex:1, minHeight:0;云端 Box 同样 |
src/components/hook-form/form-provider.tsx |
form 默认加 display:flex; flexDirection:column; flex:1 —— 让 flex 链不断(对非 flex 父级无副作用) |
验证方式¶
打开设置页 → 应只有一个滚动条(推荐外层 / 页面级)。
如何避免再犯¶
- 嵌套布局只能有一处 overflow — Card / Drawer / Dialog 内有滚动时,外层必须 fixed
- 改 settings 布局前先看现有结构,不要随手加 overflow
相关问题¶
- 无
历史轨迹 + v0.10.21 真修¶
| 版本 | 动作 | 结果 |
|---|---|---|
| v0.10.18 | Card 设固定 height + CardContent overflow:auto | ❌ 双滚动条出现(自身 + 外层) |
| v0.10.21 | Card 去 height、去 overflow,让 main-layout 父级单条滚动 | ✅ 真修 |
| v0.10.37 后复核 | 代码已是 v0.10.21 状态,settings-view.tsx 注释明确"v0.10.21:去掉 overflow" | ✅ 现状 fixed |
status 调整:原 recurring → 现 fixed,frontmatter 加 history: recurring 保留警示标记。
未来准则:嵌套布局只允许一层 overflow;改 settings 布局前必读本文件 + 实测有无双滚动条。