HTML中真正属于“全局属性”的只有27个,包括accesskey、autocapitalize、autocorrect、autofocus、class、contenteditable、dir、draggable、enterkeyhint、exportparts、hidden、id、inert、inputmode、is、itemid、itemprop、itemref、itemscope、itemtype、lang、nonce、part、popover、slot、spellcheck、tabindex、title、translate、virtualkeyboardpolicy;style和data-*虽广泛支持但非规范定义的全局属性。

HTML中真正属于“全局属性”的只有27个,不是所有能写在任意标签上的属性都算——比如 style 和 data-* 就不在这个名单里,它们是“广泛支持的属性”,但语义和规范地位不同。
哪些属性被MDN明确认定为全局属性(2026年有效)
截至2026年4月,MDN官方列表共27项,包括:accesskey、autocapitalize、autocorrect、autofocus、class、contenteditable、dir、draggable、enterkeyhint、exportparts、hidden、id、inert、inputmode、is、itemid、itemprop、itemref、itemscope、itemtype、lang、nonce、part、popover、slot、spellcheck、tabindex、title、translate、virtualkeyboardpolicy。
注意以下几点:
-
style和data-*常被误认为全局属性,但MDN未将其列入该列表;前者是“所有元素都支持的标准属性”,后者是约定俗成的自定义数据机制 -
xml:lang和xml:base已被弃用,仅因兼容性保留,不算当前有效全局属性 -
on*类事件处理器(如onclick)属于 DOM 接口层面的支持,不是 HTML 规范定义的全局属性
class 和 id 看似相似,但行为约束完全不同
class 和 id 都在27个全局属性之列,但用途和限制天差地别:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
立即学习“前端免费学习笔记(深入)”;
-
id必须全局唯一;document.getElementById()遇到重复id时只返回第一个匹配元素,不是报错——这是很多DOM操作失效的根源 -
class可重复、可多值(空格分隔),用于批量样式控制或JS批量选取,document.getElementsByClassName()返回的是实时集合 - 混淆二者会导致:CSS选择器优先级误判、
querySelector行为不符合预期、可访问性(ARIA)引用断裂、SEO结构识别失败
几个容易踩坑的“高危”全局属性
有些全局属性看着简单,但实际使用中极易出问题:
-
contenteditable:必须搭配tabindex="0"才能键盘聚焦;合法值只有true、false和空字符串,"plaintext-only"不被任何浏览器支持 -
tabindex:设为-1仅支持 JS 聚焦(el.focus()),不参与 tab 流;正数值(如5)会打乱自然焦点顺序,损害屏幕阅读器体验 -
hidden:是布尔属性,写成hidden="false"无效——浏览器只检测是否存在,不解析值 -
inert:Chrome 122+、Firefox 125+ 才稳定支持,旧版需降级逻辑;它会让整个子树不可交互、不可聚焦、不可被辅助技术访问
真正需要关注的不是“哪些属性能用”,而是“哪些属性有明确语义、受规范约束、且浏览器行为一致”。27个全局属性就是这组边界清晰的工具,其余的(比如 data-* 或 style)虽实用,但不属于这个体系——混用时尤其要注意可访问性和长期维护成本。


















