关键在于建立根声明、语义分块、head组织、body层级四环节刚性约定:强制DOCTYPE与lang属性、head元信息顺序固定、body用header/main/article/aside/footer替代div堆叠、嵌套深度≤6且main内禁用页面级header/footer。

要让团队在 HTML5 文档结构上风格统一,关键不是堆砌标签,而是建立可执行、易检查的结构约定。重点落在 根声明、语义分块、head 内容组织、body 层级逻辑 四个刚性环节上。
强制声明 DOCTYPE 与 lang 属性
所有 HTML 文件第一行必须是 ,不可省略或换行。紧接着的 <code> 标签必须带 lang 属性,值按实际语言填写(如 zh-CN、en-US)。这不仅是规范要求,也直接影响屏幕阅读器识别和 SEO 解析。
- 禁止写成
或 - 多语言站点需动态注入 lang 值,不可硬编码为固定值
- lang 值须符合 BCP 47 标准(如
zh-Hans-CN合法,zh-china不合法)
head 部分精简且顺序固定
不是“放脚本的地方”,而是页面元信息中枢。团队应约定固定顺序,避免随意增删导致遗漏或冲突:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 第一行:必须是
<meta charset="UTF-8"> - 第二行:必须是
<meta name="viewport" content="width=device-width, initial-scale=1.0">(含移动端适配) - 第三行:必须是
<title></title>,内容简洁明确,长度建议 ≤ 60 字符 - 后续依次为:
<meta name="description">、CSS<link>、preload 资源、JS<script></script>(仅限必要内联初始化逻辑) - 禁止在 head 中写业务逻辑 JS,禁止用
<script src></script>加载非关键 JS
body 使用语义化区块替代 div 堆叠
避免满屏 <div class="wrap"><div class="content"><div class="item">。HTML5 提供的语义标签不是“可选装饰”,而是结构契约:<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>
<ul>
<li>页面顶部导航区 → <code><header></header> 或 <nav></nav>(二者不互斥,<header></header> 可含 <nav></nav>)
<main></main>(每个页面有且仅有一个)<article></article>;侧边栏/辅助内容 → <aside></aside>
<footer></footer>(注意:不是所有底部都该用 footer,仅当属页面级版权或全局信息时)<div>,但需配合有意义的 class(如 <code>product-list),禁用 left-box、top-div 类样式命名
嵌套层级清晰,避免过深或跨区混用
结构混乱常源于嵌套失控。团队需明确深度红线和区块边界:
- 推荐最大 DOM 深度 ≤ 6 层(从
算起),超深需拆分组件或重构布局 -
<main></main>内不可出现<header></header>或<footer></footer>(这些属于页面级,非内容级) -
<article></article>内可含自己的<header></header>(如文章标题+作者时间),但不可含<nav></nav> - 列表必须用
<ul>/</ul> <ol>/<dl></dl> </ol>,禁止用<div> + class 模拟;每项必须用 <code><li>包裹不复杂但容易忽略。真正起效的不是贴出规范文档,而是把上述四点固化进模板脚手架、代码检查工具(如 ESLint + HTMLHint)、以及 CR(Code Review)清单里。


















