HTML转HTML5需遵循哪些书写规范_遵语法规则保代码整洁【规范】

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

HTML 转 HTML5 不是简单地把 往顶上一加就完事。真正影响可维护性、浏览器兼容性和未来扩展性的,是语义化结构、废弃标签处理、属性写法和文档模型的系统性调整。

必须替换的过时元素与对应语义化标签

HTML5 废弃了大量纯表现型标签,强行保留会导致语义丢失、无障碍支持失效、SEO 权重下降。

  • 等已无合法地位,一律用 CSS 替代(如 text-decoration: underline
  • 未被废弃,但语义已变更:不再表示“加粗/斜体”,而是分别代表“不带额外重要性的突出”和“替代性语气”,日常强调请优先用
  • 必须改为
    ,同理 navmainasidefooter 等需按内容角色使用,而非仅靠 class 模拟

    属性写法必须符合 HTML5 语法约束

    HTML5 对布尔属性、自闭合标签、引号使用有明确要求,松散写法可能在某些解析器中出错或触发怪异模式。

    • 布尔属性(如 disabledrequiredchecked)不能写成 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 作为数据载体的基础契约。