上真正可用的全局属性仅有id、class、data-*、title、lang、dir、style、tabindex(需显式设为"0"或负值)、hidden;contenteditable、spellcheck等多数无效或需额外条件。

不是所有标着“全局”的属性都能在 @#@#@#@#@#@#@#@#@#@0 看起来没问题,但 JS 里取值稍有不慎就拿空:
- HTML 写
data-user-id="123",JS 必须用el.dataset.userId(连字符变驼峰,首字母小写),dataset.userid或dataset.Userid都是undefined - 如果属性名含数字开头,如
data-2fa-enabled,不能写dataset.2faEnabled(语法错误),得用dataset["2fa-enabled"] - 所有
dataset值都是字符串,el.dataset.userId === 123是false,要转类型:Number(el.dataset.userId)或parseInt()
hidden 与 display: none 在链接上的表现差异
hidden 属性会让链接从渲染树中移除,且不占布局空间,但更重要的是:它同时禁用交互和可访问性暴露——screen reader 不读、focus() 失败、click() 无响应。
- 用
hidden是“彻底隐藏 + 禁用”,适合条件性展示的链接(如权限不足时直接不渲染) - 用
style="display: none"也能隐藏,但某些 JS 仍可能意外调用.focus()或.click(),浏览器不会报错,但行为不可预测 - 千万别混用:
<a hidden style="display: block"></a>——hidden优先级更高,display被覆盖,但开发者容易误以为样式还能起作用
最常被忽略的是:全局属性不是“写了就生效”,而是“写了 + 满足上下文 + 浏览器支持 + 无冲突”才真正起效。尤其是 <a></a> 这种语义强、行为固定的元素,硬塞某些全局属性反而会绕开浏览器默认保障机制。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











