应使用语义化HTML5元素、CSS Grid、Flexbox、BEM命名或template+JS动态注入构建模块化页面框架,摒弃已废弃的frameset和frame标签。
如果您希望使用 HTML5 构建页面框架并实现模块化布局,需摒弃已废弃的 HTML5 提供了 1、在 2、用 3、侧边栏内容放入 CSS Grid 提供二维布局能力,允许通过 1、创建一个外层 2、为各子 3、定义 Flexbox 适用于一维线性布局场景,适合构建水平导航栏、垂直侧边栏+主内容组合等常见框架结构,通过父容器 1、将页面划分为左右两栏时,外层容器设为 2、使用 3、添加 通过严格命名约定提升 1、为每个顶层模块定义唯一 Block 名称,例如 2、子元素使用双下划线连接,如 3、状态修饰符以双横线开头,例如 对于需复用或延迟加载的框架模块(如通用弹窗、底部工具栏),可借助 1、在 2、通过 3、调用 和 标签,转而采用语义化 或原生 HTML5 结构元素进行分区域组织。以下是多种构建页面框架的方法:
一、使用语义化 HTML5 元素划分模块
、、、、、、 等语义标签,可替代传统 实现结构清晰、可访问性强的模块布局。
内按逻辑区域顺序嵌套语义标签,例如: 放置顶部导航与标题, 独立放置主导航菜单。 包裹主体内容区域,并在其内部使用 划分不同功能模块(如“产品介绍”“用
户评价”)。,页脚信息统一置于 中,确保每个语义标签仅承载对应职责的内容。二、基于 CSS Grid 的 div 模块化框架
定义容器与子区域,精准控制行、列、间距及响应式行为,无需依赖浮动或定位模拟框架结构。
作为 grid 容器,并在 CSS 中设置 display: grid 及 grid-template-areas 属性。
添加 class 并匹配 grid-area 值,例如:grid-area: header; 对应顶部区域,grid-area: sidebar; 对应左侧导航区。
grid-template-columns 和 grid-template-rows 明确列宽与行高,支持使用 fr 单位实现弹性分配,避免固定像素导致响应失败。三、基于 Flexbox 的 div 分栏框架
display: flex 控制子元素排列方向与空间分配。display: flex,子 和 作为直接子项。
flex-direction: column 构建上下结构(如顶部导航+滚动主体),配合 flex: 1 让主内容区自动填充剩余高度。flex-wrap: wrap 与媒体查询结合,在小屏下自动切换为单列堆叠布局,保障移动端可用性。四、嵌套 div + BEM 命名规范的模块化组织
框架的可维护性与协作效率,BEM(Block__Element--Modifier)模式明确区分模块、子组件与状态变体,避免样式冲突与结构混乱。
、。
、,禁止跨 Block 使用相同 Element 名。
product-grid--loading 表示加载中状态,所有 modifier 必须依附于 block 或 element,不可独立存在。五、使用 HTML5 template + JavaScript 动态注入模块
标签预定义结构,再通过 JS 插入 DOM,实现逻辑与结构分离。 或页面底部声明 ,内部包含完整模态框 HTML 结构(含遮罩层、内容区、关闭按钮)。document.getElementById('modal-frame').content.cloneNode(true) 获取文档片段,避免重复解析。document.body.appendChild(clonedFragment) 将模块注入指定位置,每次插入均为独立副本,互不影响事件绑定。








