HTML框架集可以将浏览器窗口划分为多个独立的区域,每个区域可以加载不同的HTML页面,常用于后台管理系统、多模块展示类页面的结构搭建。这种技术通过特定的标签实现页面区域的划分,不需要复杂的CSS布局即可完成基础的结构拆分。

框架集基础语法
框架集的核心标签是<frameset>,它用来定义页面的划分规则,不能和<body>标签同时存在,否则框架集不会生效。划分方向分为横向和纵向两种,通过rows和cols属性控制。
rows属性用来设置横向划分的高度,取值可以是像素、百分比或者剩余空间标识*;cols属性用来设置纵向划分的宽度,取值规则相同。每个划分出来的区域需要对应一个<frame>标签,用来指定该区域加载的页面地址。
简单横向划分示例
以下代码将页面横向划分为上下两部分,上部分高度100像素,下部分占满剩余空间,上部分加载top.html,下部分加载main.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>横向框架集示例</title>
</head>
<frameset rows="100,*">
<frame src="top.html" name="top_frame">
<frame src="main.html" name="main_frame">
</frameset>
</html>
纵横组合划分示例
如果需要同时做横向和纵向划分,可以在<frameset>内部嵌套另一个<frameset>。以下代码先横向划分为上下两部分,再将下部分纵向划分为左右两部分,实现常见的上、左、右三区域布局:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>组合框架集示例</title>
</head>
<frameset rows="80,*">
<frame src="header.html" name="header_frame">
<frameset cols="200,*">
<frame src="menu.html" name="menu_frame">
<frame src="content.html" name="content_frame">
</frameset>
</frameset>
</html>
frame标签常用属性
<frame>标签有多个实用属性,可以调整框架区域的行为表现:
- src:指定该框架区域要加载的页面路径,必填属性
- name:给框架区域设置名称,可用于超链接的
target属性指定页面在该区域打开 - noresize:设置后用户无法拖动框架的边界调整大小
- scrolling:控制框架区域是否显示滚动条,取值为yes、no、auto
- frameborder:设置是否显示框架边框,取值为1(显示)或0(不显示)
内联框架iframe的使用
除了<frameset>和<frame>的组合,HTML还提供了<iframe>内联框架,它可以在普通<body>页面内部嵌入另一个页面,不需要替换整个body内容,使用更灵活。
iframe的常用属性和frame类似,同样通过src指定加载页面,还可以设置宽度、高度等样式属性。以下是在普通页面中嵌入内联框架的示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>iframe示例</title>
</head>
<body>
<h1>页面主体内容</h1>
<p>下方是嵌入的其他页面内容:</p>
<iframe src="https://ipipp.com/demo.html" width="800" height="400" frameborder="0"></iframe>
</body>
</html>
框架集技术的注意事项
需要注意,<frameset>和<frame>标签在HTML5中已经被废弃,现代浏览器虽然仍然支持,但不建议在新的项目中使用。如果需要实现类似的页面区域划分效果,更推荐使用CSS的flex、grid布局配合后端模板或者前端组件化方案实现。
iframe目前仍然被HTML5支持,适合用于嵌入第三方内容、广告、地图等场景,但过多使用iframe会影响页面的加载性能和SEO效果,使用时需要权衡利弊。