HTML转HTML5需系统性调整语义结构、废弃标签、属性写法及文档模型:替换等过时标签为CSS,改为,布尔属性仅存在即生效,空元素不加斜杠,属性值必加引号,script/link的type省略有前提,嵌套语义须合规。

HTML 转 HTML5 不是简单地把 往顶上一加就完事。真正影响可维护性、浏览器兼容性和未来扩展性的,是语义化结构、废弃标签处理、属性写法和文档模型的系统性调整。
必须替换的过时元素与对应语义化标签
HTML5 废弃了大量纯表现型标签,强行保留会导致语义丢失、无障碍支持失效、SEO 权重下降。
-
、、、等已无合法地位,一律用 CSS 替代(如text-decoration: underline) -
和未被废弃,但语义已变更:不再表示“加粗/斜体”,而是分别代表“不带额外重要性的突出”和“替代性语气”,日常强调请优先用和 - 必须改为
,同理nav、main、aside、footer等需按内容角色使用,而非仅靠 class 模拟属性写法必须符合 HTML5 语法约束
HTML5 对布尔属性、自闭合标签、引号使用有明确要求,松散写法可能在某些解析器中出错或触发怪异模式。
- 布尔属性(如
disabled、required、checked)不能写成disabled="false"或disabled="disabled";正确写法只有disabled(存在即为 true)或直接省略 -
、、等空元素禁止写成(XHTML 风格),HTML5 中应为(无尾斜杠) - 所有属性值必须加引号:
class=header是非法的,必须写成class="header",即使值不含空格
script 和 link 标签的 type 属性可省略但有前提
HTML5 允许省略部分
type,但并非所有场景都安全,尤其涉及模块化或非标准 MIME 类型时。立即学习“前端免费学习笔记(深入)”;
-
默认类型为text/javascript,所以合法;但若使用 ES modules,必须显式声明type="module" -
可省略type="text/css",但若未指定type,部分旧版 Safari 会忽略.svg图标 - 自定义
rel值(如rel="preload")必须配as属性,否则会被忽略 —— 这不是规范退让,而是强制语义对齐
最容易被忽略的是嵌套语义层级:比如
内必须有或作为标题锚点,否则结构意义断裂;必须带datetime属性才具机器可读性。这些不是“能跑就行”的细节,而是 HTML5 作为数据载体的基础契约。 - 布尔属性(如










