我们来介绍 HTML 框架页面的概念以及如何制作一个简单的框架页面。
一、HTML框架页面简介
在早期 Web 开发中,框架页面 (Frameset)是一种将浏览器窗口分割成多个独立区域的布局技术。每个区域称为一个 框架(Frame),可以独立加载和显示不同的 HTML 文档。这种方式常用于创建导航栏固定、内容区域可变的页面结构,例如:
- 左侧框架:导航菜单
- 右侧框架:主要内容
框架集通过 <frameset> 标签定义,并用 <frame> 标签指定每个框架加载的页面。
二、框架页面的基本结构
一个典型的框架页面不使用 <body> 标签,而是使用 <frameset>。下面是一个将页面垂直分割成两部分的示例:
html
<!DOCTYPE html>
<html>
<head>
<title>框架页面示例</title>
</head>
<!-- 注意:框架页面没有 <body>,而是用 <frameset> -->
<frameset cols="200, *"> <!-- 将窗口分成两列,第一列200像素宽,第二列占剩余宽度 -->
<frame src="left.html" name="leftFrame"> <!-- 左侧框架,加载left.html -->
<frame src="main.html" name="mainFrame"> <!-- 右侧框架,加载main.html -->
</frameset>
</html>
<frameset cols="200, *">:cols属性定义纵向分割的列宽。"200, *"表示第一列宽度为 200 像素,第二列宽度为剩余部分。<frame>: 定义框架内的具体内容。src: 指定该框架要加载的 HTML 文件路径。name: 为框架命名,方便其他框架或链接指定目标(例如,在左侧导航点击链接时,让内容在右侧框架打开)。
三、框架页面的制作步骤
-
创建框架集文件 :例如
index.html,使用<frameset>定义布局。 -
创建框架内容文件 :为每个框架创建单独的 HTML 文件(如
left.html,main.html)。 -
设置框架链接 :在导航框架(如
left.html)中的链接,使用target属性指定内容在哪个框架打开:html<!-- 在 left.html 中 --> <a href="page1.html" target="mainFrame">页面一</a> <a href="page2.html" target="mainFrame">页面二</a>这里的
target="mainFrame"对应右侧框架的name属性值。
四、框架页面的优缺点
示例实现方案:
css
.navbar {
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
background: #fff;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
模块化并行加载机制
采用区域独立加载架构,实现以下技术特性:
技术实现示例:
javascript
// 并行加载多个区块
Promise.all([
loadHeaderSection(),
loadProductGrid(),
loadRecommendations()
]).then(() => {
// 所有区块加载完成
}).catch(error => {
// 单个区块错误处理
});
此方案特别适用于电商平台、内容门户等复杂页面结构,能显著提升页面加载速度和用户体验。
-
优点(历史背景) :
导航与内容加载优化方案
固定导航设计
导航栏采用固定定位方式,确保用户在不同页面间切换或滚动浏览时始终可见,提供以下优势:
操作便捷性:无论页面滚动到什么位置,用户都能随时访问主导航功能
品牌一致性:顶部固定区域可保持企业LOGO和品牌标识始终展示
关键功能快速访问:搜索框、登录入口等重要功能随时可用
跨设备适配:在移动端通过汉堡菜单实现相同效果
-
分区加载策略:
- 页面划分为多个独立功能区块(如:头部banner、产品展示、推荐内容等)
- 每个区块配置独立API接口和加载逻辑
- 支持优先级队列控制加载顺序
-
性能优势:
- 理论最大并行加载数 = 浏览器HTTP连接数限制(通常6-8个)
- 首屏关键内容优先加载(Above the Fold)
- 非关键内容延迟加载(Lazy Load)
-
容错机制:
- 单个区块加载失败不影响其他内容展示
- 支持区块级重试机制
- 降级展示方案(如加载占位图)
-
缺点(现代观点) :
- 已弃用 :
<frameset>和<frame>在 HTML5 中已被废弃。现代开发不推荐使用。 - 可用性差:不利于书签、打印、搜索引擎优化(SEO)。
- 兼容性问题:移动设备支持差。
- 维护困难:页面结构复杂。
- 已弃用 :
五、现代替代方案
由于框架技术的缺陷,现代 Web 开发通常使用以下技术实现类似布局:
-
CSS 布局 :使用
Flexbox、Grid等现代 CSS 技术创建复杂的响应式布局。 -
<iframe>元素 :如果需要嵌入 另一个独立的页面(如地图、视频),可以使用<iframe>(内联框架),但它不是用来分割整个页面结构的。html<iframe src="external-page.html" width="600" height="400"></iframe> -
前端框架:如 React, Vue, Angular 等,提供组件化开发模式,天然支持局部内容更新。
总结
虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。
框架页面的主要缺点包括:
- 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
- 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
- 移动设备兼容性差:无法适应响应式布局需求
- 可访问性问题:屏幕阅读器等辅助技术难以正确解析
- 维护困难:需要管理多个独立 HTML 文件
现代 Web 开发的替代方案:
-
CSS 布局技术:
- 使用 Flexbox 实现弹性布局
- 采用 CSS Grid 创建复杂网格系统
- 结合 position 属性实现固定定位元素
- 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为
<div class="container"><header><nav></nav></header><main></main></div>的语义化结构
-
组件化开发思想:
- 使用 React/Vue/Angular 等框架实现模块化
- 通过单页应用(SPA)技术管理视图切换
- 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
-
现代布局方案优势:
- 完全响应式设计
- 更好的性能表现(减少HTTP请求)
- 完善的开发工具支持
- 符合 W3C 标准规范
对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。
虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。
框架页面的主要缺点包括:
- 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
- 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
- 移动设备兼容性差:无法适应响应式布局需求
- 可访问性问题:屏幕阅读器等辅助技术难以正确解析
- 维护困难:需要管理多个独立 HTML 文件
现代 Web 开发的替代方案:
-
CSS 布局技术:
- 使用 Flexbox 实现弹性布局
- 采用 CSS Grid 创建复杂网格系统
- 结合 position 属性实现固定定位元素
- 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为
<div class="container"><header><nav></nav></header><main></main></div>的语义化结构
-
组件化开发思想:
- 使用 React/Vue/Angular 等框架实现模块化
- 通过单页应用(SPA)技术管理视图切换
- 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
-
现代布局方案优势:
- 完全响应式设计
- 更好的性能表现(减少HTTP请求)
- 完善的开发工具支持
- 符合 W3C 标准规范
对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。
虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。
框架页面的主要缺点包括:
- 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
- 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
- 移动设备兼容性差:无法适应响应式布局需求
- 可访问性问题:屏幕阅读器等辅助技术难以正确解析
- 维护困难:需要管理多个独立 HTML 文件
现代 Web 开发的替代方案:
-
CSS 布局技术:
- 使用 Flexbox 实现弹性布局
- 采用 CSS Grid 创建复杂网格系统
- 结合 position 属性实现固定定位元素
- 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为
<div class="container"><header><nav></nav></header><main></main></div>的语义化结构
-
组件化开发思想:
- 使用 React/Vue/Angular 等框架实现模块化
- 通过单页应用(SPA)技术管理视图切换
- 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
-
现代布局方案优势:
- 完全响应式设计
- 更好的性能表现(减少HTTP请求)
- 完善的开发工具支持
- 符合 W3C 标准规范
对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。