别碰 和 ,它们在 HTML5 中已被废弃,现代浏览器虽可能勉强渲染,但不支持 JavaScript 跨 frame 通信、无响应式能力、SEO 彻底失效,且无法通过无障碍检测。

直接说结论:别碰 和 ,它们在 HTML5 中已被废弃,现代浏览器虽可能勉强渲染,但不支持 JavaScript 跨 frame 通信、无响应式能力、SEO 彻底失效,且无法通过无障碍检测。
为什么不能继续用 做表格布局
很多人误以为“框架”能用来做左右分栏表格(比如左导航+右数据表),但 的设计目标从来不是结构化数据展示,而是加载多个独立文档。它和 完全无关,强行混用会导致:-
内无法使用 CSS Grid/Flex 布局, 也无法嵌套在 中作为子文档主体(除非你另建一堆 HTML 文件)
- 每个
是隔离的 DOM 上下文,document.querySelector 在父页查不到子 frame 里的 ,调试和自动化测试基本瘫痪
- 移动端 Safari 和 Chrome for Android 会直接忽略
,降级为白屏或只显示第一个 的内容
表格结构本身怎么重构才真正有效
真正的“表格重构”,是把语义混乱、嵌套过深、纯靠 colspan/rowspan 撑起来的老式 ,改成符合 HTML5 语义、可访问、易维护的结构。重点不在删表格,而在改写法:- 必须补全
/ (老代码常只用 堆砌,导致 JS 操作时找不到逻辑边界)
必须带 scope="col" 或 scope="row",否则屏幕阅读器无法建立行列关联
- 删除所有
这类 presentational 属性,样式全部交由 CSS 控制(border-collapse: collapse + border)
- 如果原表格实际承载的是层级数据(如部门→员工→工单),别硬撑单层
,该换 bootstrap-table-treegrid 或手写 / 折叠结构
替换 的最小改动方案
如果你的旧项目是“左菜单 frame + 右主内容 frame”,而主内容里刚好有个大表格,那重构路径很明确:保留表格,干掉框架。用现代 CSS 实现同等布局:
DeepBI DHTML 页面生成器
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
下载
- 用
display: flex 或 display: grid 替代 cols="20%,80%" —— 例如 grid-template-columns: 250px 1fr
- 左侧导航用
,右侧表格区域用 包裹整个 ,语义清晰且无需跨文档通信
- 原
的 name 属性(如 name="mainFrame")通常被 JS 用来 window.frames['mainFrame'].location.href=...,现在直接改用 history.pushState + 单页路由,或最简方案:给右侧 ,然后 document.getElementById('content').innerHTML = ...
- 注意:老项目中可能有
,这类链接必须批量替换成 JS 事件监听或标准 锚点跳转
最容易被忽略的一点:重构后表格的键盘导航(Tab 键顺序)和焦点管理不会自动继承原框架行为。如果原框架中按 Tab 会从左栏跳到右栏表格首单元格,现在得手动加 tabindex="0" 和 focus() 调度,否则残障用户会卡死在导航栏里出不来。
|
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!