Repository navigation
Conversation
css/mobile.css(42KB)与 mobile-columns.js 早已写好完整的真机适配:
侧栏抽屉化、四张表卡片化、面板头两行制、表格页脚整行铺开、面包屑收窄、
设置页导航转横条、报表排行卡改两行。但 index.html 从未引用这两个文件,
它依赖的三个元素 #nav-toggle / .nav-scrim / .mobile-menu-btn 在 DOM 里
也不存在 —— 整层适配是写好忘了接线的孤儿文件。
症状(真机 ≤767px):
- 顶栏面包屑的当前页名被压成一个字宽,长页名(网络代理 / 请求日志)
竖排堆叠,顶栏被撑高(实测 h=69px)
- 五张表的页脚控件组 .table-foot-ctl 是 flex:0 0 auto 不收缩,右溢出
到 539~627px,被 .panel 的 overflow:clip 整块裁掉 —— 翻页 / 条数 /
跳页控件看不见也点不到
- 面板头 .head-actions 里的分段控件比容器宽,同样被裁
- 侧栏恒占 68px(19% 屏宽)只显示图标,且点图标后没有收起入口
顺带发现 app.js:166 已经在做「切页后收起抽屉」
(document.getElementById('nav-toggle').checked = false),
但 #nav-toggle 不存在,这行一直是 no-op —— 也是接线遗漏的旁证。
改动(纯接线,不改既有逻辑):
1. index.html:在 islands/ui.css 之后引入 css/mobile.css
(必须排在其后 —— 组件库 Tailwind utilities 带 !important,
mobile.css 靠级联顺序压住它们);末尾引入 mobile-columns.js
2. index.html:补齐 mobile.css 依赖的三个元素
- #nav-toggle 作为 .sidebar 的前序兄弟(:checked ~ .sidebar 靠这个
相邻关系开合,位置错了抽屉打不开)
- .nav-scrim 遮罩放在 .sidebar 之后(同为 .shell 直接子元素)
- .mobile-menu-btn 汉堡放在 .topbar 内,用 <label for> 而非 button
三者桌面端都靠 position:absolute / display:none 不占位 ——
.shell 是「2 列 + 100vh」的 grid,多一个在流内的子元素会多出隐式行、
把富余高度分走一半
3. css/mobile.css:补一条分段控件通用兜底
mobile.css 原来只在 .toolbar .group 与 .mm-filters 里处理分段控件,
但网络代理页的筛选行(proxies-page.tsx 的裸 div,没有这两个标识)
里的 11 档分段控件 362px 宽 > 288px 容器,被 .panel 裁掉右端
(实测 right=414 > 视口 360)。改成让 [data-slot="segmented-control"]
自己成为滚动盒,任何父容器下都不溢出
验证(360×770 视口,逐页量元素盒模型 + 向上追溯裁剪祖先):
接线后 12 个页面全部无「被裁切」越界;文档宽度从被 min-width:720px
撑开恢复到视口宽;抽屉开合、遮罩关闭、切页收起均正常。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题
desktop-tauri/ui/css/mobile.css(42KB)和mobile-columns.js里有一套完整的真机移动端适配:侧栏抽屉化、四张表卡片化、面板头两行制、表格页脚整行铺开、面包屑收窄、设置页导航转横条、报表排行卡改两行。但
index.html从未引用这两个文件,它依赖的三个元素#nav-toggle/.nav-scrim/.mobile-menu-btn在 DOM 里也不存在 —— 整层适配是写好忘了接线的孤儿文件。旁证:
app.js:166已经在做「切页后收起抽屉」但
#nav-toggle不存在,这行一直是 no-op。真机 ≤767px 的实际症状(360×770 实测)
.crumb .cur报表 h=34px、网络代理 h=69px.table-foot-ctlright=539~627px,被.panel的overflow:clip裁掉.head-actions内控件 right=376 > 视口 360根因:面板只有
≤900px(侧栏收成图标)和≤767px(放开固定视口)两个断点,但没有一条规则处理「内容比容器宽」,而.panel用overflow:clip(不可滚动,注释里写明是为规避滚动锚定)——越界内容被静默裁掉。改动(纯接线,不改既有逻辑,55 行新增、0 删除)
1.
index.html引入两个孤儿文件css/mobile.css放在islands/ui.css之后 —— 组件库 Tailwind utilities 带!important,mobile.css 靠级联顺序压住它们(例如强制关掉 JS 写进表格的min-width)mobile-columns.js放在最后 —— 它要把th[data-col]写进对应td,得等岛屿渲染完2.
index.html补齐 mobile.css 依赖的三个元素#nav-toggle必须是.sidebar的前序兄弟 ——#nav-toggle:checked ~ .sidebar靠这个相邻关系开合,位置放错抽屉就打不开.nav-scrim遮罩放在.sidebar之后(同为.shell直接子元素).mobile-menu-btn汉堡放在.topbar内,用<label for>而不是button—— mobile.css 的注释明确写「汉堡 label 与遮罩 label 都指向 #nav-toggle」,纯 CSS 开合不需要 JSposition:absolute/display:none不占位。.shell是「2 列 + 100vh」的 grid,多一个在流内的子元素会多出一个隐式行、把富余高度分走一半(mobile.css 顶部注释专门警告过这条)3.
css/mobile.css补一条分段控件通用兜底mobile.css 原来只在
.toolbar .group和.mm-filters里处理分段控件。但网络代理页的筛选行(proxies-page.tsx里一个裸div.flex.flex-wrap,没有这两个标识)中的 11 档分段控件自身 362px 宽,比 288px 容器还宽 —— 容器flex-wrap:wrap只对直接子项生效,而它就是单个子项,换行帮不上忙,于是被.panel裁掉右端(实测right=414 > 视口 360,「订阅 / 全部」等档位看不见也点不到)。改成让
[data-slot="segmented-control"]自己成为滚动盒,任何父容器下都不溢出。档位少时overflow-x:auto不产生滚动条,视觉与原来一致;档位多时在控件内部横滑。验证
360×770 视口,逐页量元素盒模型并向上追溯第一个非
visible的祖先,区分「被裁切」与「可在容器内横滚」:min-width:720px撑开到 720px,恢复到视口宽 360px未验证 / 边界
≤767px,该区间仍是「68px 图标侧栏」,属既有设计,未改动