是的,在HTML5中被彻底移除,因其破坏语义结构、损害可访问性与SEO、违背响应式设计原则;应改用CSS Grid/Flexbox布局+带ARIA属性的,或采用服务端包含、SPA组件化路由等现代方案。

是的, 在 HTML5 中被彻底移除,不再被任何现代浏览器支持——不是“不推荐”,而是语法无效,解析时会被忽略或触发 quirks mode。
为什么 被砍掉?
它破坏了基本的文档语义结构、阻碍可访问性(屏幕阅读器难以导航)、干扰 SEO(搜索引擎无法合理判断 frame 内容归属)、且与现代响应式设计完全冲突。HTML5 的设计原则是“内容优先、语义清晰、单页可控”,而 让页面变成多个独立文档上下文,违背这一前提。
替代方案:用 + CSS 布局模拟 frameset 行为
本身没被废弃,仍是 HTML5 标准元素,但用法和定位完全不同:它是嵌入式内容容器,必须放在常规流式文档中,由父页面统一控制样式与交互。
-
→ 改用 CSS Grid 或 Flexbox 划分区域,再在每个区域放 - 每个
→ 替换为,并手动加title和 ARIA 属性提升可访问性 - 跨 frame 脚本通信(如
parent.frames[1].location.href)→ 改用postMessage(),且必须校验event.origin
更现代的替代思路:服务端整合 or 单页应用(SPA)
如果原 frameset 是为了“固定导航+动态内容”,现在主流做法是:
立即学习“前端免费学习笔记(深入)”;










