html框架页面介绍及制作

我们来介绍 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: 为框架命名,方便其他框架或链接指定目标(例如,在左侧导航点击链接时,让内容在右侧框架打开)。

三、框架页面的制作步骤

  1. 创建框架集文件 :例如 index.html,使用 <frameset> 定义布局。

  2. 创建框架内容文件 :为每个框架创建单独的 HTML 文件(如 left.htmlmain.html)。

  3. 设置框架链接 :在导航框架(如 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 开发通常使用以下技术实现类似布局:

  1. CSS 布局 :使用 FlexboxGrid 等现代 CSS 技术创建复杂的响应式布局。

  2. <iframe> 元素 :如果需要嵌入 另一个独立的页面(如地图、视频),可以使用 <iframe>(内联框架),但它不是用来分割整个页面结构的。

    html 复制代码
    <iframe src="external-page.html" width="600" height="400"></iframe>
  3. 前端框架:如 React, Vue, Angular 等,提供组件化开发模式,天然支持局部内容更新。


总结

虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。

框架页面的主要缺点包括:

  1. 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
  2. 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
  3. 移动设备兼容性差:无法适应响应式布局需求
  4. 可访问性问题:屏幕阅读器等辅助技术难以正确解析
  5. 维护困难:需要管理多个独立 HTML 文件

现代 Web 开发的替代方案:

  1. CSS 布局技术:

    • 使用 Flexbox 实现弹性布局
    • 采用 CSS Grid 创建复杂网格系统
    • 结合 position 属性实现固定定位元素
    • 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为 <div class="container"><header><nav></nav></header><main></main></div> 的语义化结构
  2. 组件化开发思想:

    • 使用 React/Vue/Angular 等框架实现模块化
    • 通过单页应用(SPA)技术管理视图切换
    • 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
  3. 现代布局方案优势:

    • 完全响应式设计
    • 更好的性能表现(减少HTTP请求)
    • 完善的开发工具支持
    • 符合 W3C 标准规范

对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。

虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。

框架页面的主要缺点包括:

  1. 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
  2. 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
  3. 移动设备兼容性差:无法适应响应式布局需求
  4. 可访问性问题:屏幕阅读器等辅助技术难以正确解析
  5. 维护困难:需要管理多个独立 HTML 文件

现代 Web 开发的替代方案:

  1. CSS 布局技术:

    • 使用 Flexbox 实现弹性布局
    • 采用 CSS Grid 创建复杂网格系统
    • 结合 position 属性实现固定定位元素
    • 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为 <div class="container"><header><nav></nav></header><main></main></div> 的语义化结构
  2. 组件化开发思想:

    • 使用 React/Vue/Angular 等框架实现模块化
    • 通过单页应用(SPA)技术管理视图切换
    • 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
  3. 现代布局方案优势:

    • 完全响应式设计
    • 更好的性能表现(减少HTTP请求)
    • 完善的开发工具支持
    • 符合 W3C 标准规范

对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。

虽然 HTML 框架页面 (<frameset>) 在 Web 发展早期(1990年代末至2000年代初)有其特定的应用场景,如创建固定导航栏与可变内容区的经典布局、实现简单的多窗口文档浏览等,但由于其存在诸多严重缺点且已被 W3C 标准废弃(HTML5 已完全移除了 frameset 相关标签),强烈建议在现代 Web 开发中避免使用它。

框架页面的主要缺点包括:

  1. 破坏页面整体性:每个 frame 作为独立文档加载,导致 URL 无法准确反映当前内容状态
  2. 搜索引擎优化(SEO)困难:爬虫难以索引框架内容
  3. 移动设备兼容性差:无法适应响应式布局需求
  4. 可访问性问题:屏幕阅读器等辅助技术难以正确解析
  5. 维护困难:需要管理多个独立 HTML 文件

现代 Web 开发的替代方案:

  1. CSS 布局技术:

    • 使用 Flexbox 实现弹性布局
    • 采用 CSS Grid 创建复杂网格系统
    • 结合 position 属性实现固定定位元素
    • 示例:将传统的顶部导航+侧边栏+内容区框架布局转换为 <div class="container"><header><nav></nav></header><main></main></div> 的语义化结构
  2. 组件化开发思想:

    • 使用 React/Vue/Angular 等框架实现模块化
    • 通过单页应用(SPA)技术管理视图切换
    • 示例:用 Vue Router 实现原本需要框架集的多视图导航功能
  3. 现代布局方案优势:

    • 完全响应式设计
    • 更好的性能表现(减少HTTP请求)
    • 完善的开发工具支持
    • 符合 W3C 标准规范

对于必须保留框架集特性的遗留系统,建议采用渐进式重构策略,逐步替换为现代化实现方案。

相关推荐
weibkreuz9 小时前
收集表单数据@10
开发语言·前端·javascript
hboot9 小时前
别再被 TS 类型冲突折磨了!一文搞懂类型合并规则
前端·typescript
在西安放羊的牛油果9 小时前
浅谈 import.meta.env 和 process.env 的区别
前端·vue.js·node.js
鹏北海9 小时前
从弹窗变胖到 npm 依赖管理:一次完整的问题排查记录
前端·npm·node.js
布列瑟农的星空9 小时前
js中的using声明
前端
薛定谔的猫29 小时前
Cursor 系列(2):使用心得
前端·ai编程·cursor
用户904706683579 小时前
后端问前端:我的接口请求花了多少秒?为啥那么慢,是你慢还是我慢?
前端
深念Y9 小时前
仿B站项目 前端 4 首页 顶层导航栏
前端·vue·ai编程·导航栏·bilibili·ai开发
dragonZhang9 小时前
基于 Agent Skills 的 UI 重构实践:从 Demo 到主题化界面的升级之路
前端·ai编程·claude
王林不想说话9 小时前
提升工作效率的Utils
前端·javascript·typescript