跳转至

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 布局前必读本文件 + 实测有无双滚动条。