HTML 属性¶
属性写在元素的开始标签中,用来补充地址、语言、标识、状态等信息。本页讲解通用规则和判断方法, 不是完整属性参考;使用具体元素时仍应确认该属性是否适用。
学习目标¶
- 掌握属性名称、值和引号的基本语法。
- 区分全局属性、元素专用属性与布尔属性。
- 避免在属性中引入无效结构、隐私泄露或脚本风险。
核心概念¶
一个元素可以具有多个属性,属性之间用空白分隔:
这里 class、href 和 hreflang 都是属性。HTML 属性名通常不区分 ASCII 大小写,
但统一使用小写更容易阅读;属性值建议始终使用双引号或团队约定的引号风格。
全局与专用属性¶
id、class、lang、title、hidden 和 data-* 等可用于许多元素,称为全局属性。
href 主要用于链接类元素,src 用于部分外部资源元素。属性是否合法取决于元素和规范上下文。
同一文档中的 id 应唯一。class 可以在多个元素间复用,并可包含多个以空白分隔的类名。
布尔属性¶
布尔属性只要出现就表示真,字符串内容不会把它变成假:
disabled="false" 仍然表示禁用。要表示假,应移除该属性。不要把这一规则随意套用到
aria-* 属性;ARIA 属性通常有自己的字符串取值规则。
自定义数据¶
data-* 适合保存与页面元素相关、供脚本读取的非敏感数据:
这些值会暴露给访问者,不能保存密码、访问令牌或授权判断。样式优先使用语义化类名, 不要把大量业务数据塞进 HTML 属性。
安全实践¶
不可信数据进入属性值时必须按属性上下文编码;URL 属性还应解析并限制允许协议。
避免内联事件属性,如 onclick,使用独立脚本和 addEventListener 更利于维护与内容安全策略。
常见错误¶
- 重复使用同一个
id,导致片段导航和标签关联含糊。 - 写
disabled="false"并期待控件恢复可用。 - 把任意用户字符串直接插入
href、src或style。 - 误以为
title属性可以替代可见标签或可靠的移动端提示。 - 给元素添加规范不支持的属性并期待浏览器提供功能。