HTML日常开发应以MDN Web Docs为首选权威入口,其按真实场景组织内容,涵盖兼容性、可嵌套性、无障碍等关键信息;仅在浏览器行为不一致、验证报错或需确认省略规则等特殊情况下,才需查阅W3C或WHATWG原始规范。
查 HTML 规范,别翻“大全”或“速查表”,直接去 MDN Web Docs 就够用;W3C 和 WHATWG 的原始规范只在需要确认行为细节、争议点或浏览器实现分歧时才打开。
所有标签、属性、接口的使用方式,MDN 都按真实开发场景组织:搜 <time> 就看到“Permitted content”“Attributes”“Accessibility concerns”三栏,一眼能判断能不能嵌 <p>、要不要加 datetime、屏幕阅读器怎么读。不写“兼容性:IE 不支持”,而是标出每个浏览器从哪个版本开始支持 datetime 属性。右上角的 “Specifications” 链接指向 WHATWG 原文,但日常开发中 95% 的问题,看 MDN 的“Usage notes”和示例就解决了。
当遇到以下情况,才需要切到原始规范页面(html.spec.whatwg.org 或 w3.org/TR/html/):
<dialog> 在 Safari 和 Chrome 中对 open 属性的初始状态处理不同required attribute may be omitted if the element’s type is not email, url, etc.”<ul> 内含 <div> 不合法,就得查 WHATWG 的 “Content models” 定义这类页面普遍存在三个硬伤:
立即学习“前端免费学习笔记(深入)”;
<font>、<center>)和实验性标签(如 <fencedframe>)混在一起,不标状态inputmode、virtualkeyboardpolicy 这类新属性,或把仅限 <input> 的 minlength 写成全局可用<main> 页面中只能有一个,<article> 可嵌套但不能放 <header> 外的 <h1> ——这些全靠 MDN 的 “Usage notes” 和 “Accessibility” 提示很多人等 W3C Validator 报错才去查规范,结果卡在“为什么 <button> 里不能放 <div>”,其实 MDN 的 <button> 页面“Permitted content”一栏早写了 “Phrasing content only”。更隐蔽的是:<select> 的 required 属性只在至少一个 <option> 没设 selected 时才生效;<textarea> 的 maxlength 对换行符计数方式各浏览器不同——这些细节,只有在写代码前主动查文档,才能避开调试半天才发现是规范理解偏差。