cols属性在html5中已彻底废弃,因被标准移除,现代浏览器直接忽略或报错;应改用css grid(如grid-template-columns: 30% 70%)实现响应式左右分栏。

frameset 的 cols 属性确实能划分左右框架,但现代浏览器已完全弃用它——frameset 和 frame 标签在 HTML5 中被移除,任何新项目都不应使用。
为什么 cols 不再可用
Chrome、Firefox、Edge 等主流浏览器自 2010 年代起就停止对 frameset 的支持;即使写上 <frameset cols="30%,70%"></frameset>,页面会直接空白或报错 HTMLUnknownElement,控制台显示 The element <frameset> is not supported in HTML5</frameset>。
-
frameset无法响应式,不能适配移动端 - SEO 友好性极差,搜索引擎几乎不索引
frame内容 - 无障碍访问(a11y)支持缺失,屏幕阅读器难以解析嵌套 frame 文档
替代方案:用 CSS Grid 实现左右分栏
用 display: grid 模拟传统 frameset 的左右布局,语义清晰、可响应、可聚焦、完全兼容。
<div class="layout">
<aside class="sidebar">左侧导航</aside><main class="content">主内容区</main>
</div>
<p><style>
.layout {
display: grid;
grid-template-columns: 30% 70%;
height: 100vh;
}
@media (max-width: 768px) {
.layout {
grid-template-columns: 1fr; /<em> 移动端堆叠 /
}
}
</style></p>
- 百分比值(如
30%)对应原cols="30%,70%"的比例逻辑 - 也可用
fr单位(如1fr 2fr)实现更灵活的弹性分配 - 若需“独立滚动区域”,给
.sidebar或.content加overflow-y: auto
如果必须兼容老系统(极少数内网场景)
仅限无法升级的遗留系统,且确认目标浏览器为 IE8–IE11 或旧版企业定制浏览器:
- 文档类型必须声明为
- 整个 HTML 必须以
<frameset></frameset>为根,不能有 -
cols值支持像素("200,*")、百分比("30%,70%")、相对单位("1*,2*"),但 * 不等于 fr,是剩余空间均分逻辑 - 每个
<frame>必须带src属性,空框架需指向空白 HTML 文件(如about:blank在部分 IE 版本中不可靠)
真正要划左右区域时,grid 或 flex 是唯一合理选择;cols 不是“怎么用”的问题,而是“不该用”的事实。容易被忽略的是:即便老代码还能跑,iframe + CSS 布局也比 frameset 更可控、更易调试、更容易加 JS 交互。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











