HTML 属性参考

HTML 中的元素拥有属性;这些是额外的值,用于配置元素或以各种方式调整其行为,以满足用户所需的条件。

属性列表

属性名称 元素 描述
accept <form>, <input> 服务器接受的类型列表,通常是文件类型。
accept-charset <form> 字符集,如果提供,必须是 "UTF-8"
accesskey 全局属性 用于激活元素或将焦点添加到元素的键盘快捷键。
action <form> 通过表单提交信息所处理程序的 URI。
align 已弃用 <caption>, <col>, <colgroup>, <hr>, <iframe>, <img>, <table>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr> 指定元素的水平对齐方式。
allow <iframe> 为 iframe 指定 feature-policy。
alpha <input> 允许用户在 type="color" 输入中选择颜色的不透明度。
alt <area>, <img>, <input> 当图片无法显示时,替代文本。
as <link> 指定链接加载内容的类型。
async <script> 异步执行脚本。
autocapitalize 全局属性 设置用户输入时是否自动大写
autocomplete <form>, <input>, <select>, <textarea> 指示此表单中的控件是否可以默认由浏览器自动完成其值。
autoplay <audio>, <video> 音频或视频应尽快播放。
background <body>, <table>, <td>, <th> 指定图像文件的 URL。

注意:尽管浏览器和电子邮件客户端可能仍然支持此属性,但它已过时。请改用 CSS background-image

bgcolor <body>, <col>, <colgroup>, <marquee>, <table>, <tbody>, <tfoot>, <td>, <th>, <tr>

元素的背景颜色。

注意:这是一个旧版属性。请改用 CSS background-color 属性。

border <img>, <object>, <table>

边框宽度。

注意:这是一个旧版属性。请改用 CSS border 属性。

capture <input> 根据 媒体捕获规范,指定可以捕获新文件。
字符集 <meta> 声明页面或脚本的字符编码。
checked <input> 指示元素是否应在页面加载时选中。
cite <blockquote>, <del>, <ins>, <q> 包含指向引文或更改来源的 URI。
class 全局属性 常与 CSS 结合使用,以使用公共属性设置元素样式。
color <font>, <hr>

此属性使用命名颜色或十六进制 #RRGGBB 格式指定的颜色设置文本颜色。

注意:这是一个旧版属性。请改用 CSS color 属性。

colorspace <input> 定义 type="color" 输入使用的颜色空间
cols <textarea> 定义文本区域中的列数。
colspan <td>, <th> colspan 属性定义单元格应跨越的列数。
content <meta> 根据上下文,与 http-equivname 相关联的值。
contenteditable 全局属性 指示元素内容是否可编辑。
controls <audio>, <video> 指示浏览器是否应向用户显示播放控件。
coords <area> 一组值,指定热点区域的坐标。
crossorigin <audio>, <img>, <link>, <script>, <video> 元素如何处理跨域请求
csp 实验性 <iframe> 指定嵌入文档必须同意对自己强制执行的内容安全策略。
data <object> 指定资源的 URL。
data-* 全局属性 允许您将自定义属性附加到 HTML 元素。
datetime <del>, <ins>, <time> 指示与元素关联的日期和时间。
decoding <img> 指示解码图像的首选方法。
default <track> 指示轨道应启用,除非用户偏好指示不同。
defer <script> 指示脚本应在页面解析后执行。
dir 全局属性 定义文本方向。允许值为 ltr(从左到右)或 rtl(从右到左)
dirname <input>, <textarea>
disabled <button>, <fieldset>, <input>, <optgroup>, <option>, <select>, <textarea> 指示用户是否可以与元素交互。
download <a>, <area> 指示超链接用于下载资源。
draggable 全局属性 定义元素是否可以拖动。
enctype <form> method 为 POST 时,定义表单数据的内容类型。
enterkeyhint <textarea>, contenteditable enterkeyhint 指定在虚拟键盘上为回车键呈现的操作标签(或图标)。该属性可与表单控件(例如 textarea 元素的值)或编辑宿主中的元素(例如,使用 contenteditable 属性)一起使用。
elementtiming <img>, <image> 元素位于 <svg> 内部,<video> 元素的封面图像,具有 background-image 的元素,以及包含文本节点(例如 <p>)的元素 指示元素是否被标记为由使用 "element" 类型的 PerformanceObserver 对象跟踪。有关更多详细信息,请参阅 PerformanceElementTiming 接口。
for <label>, <output> 描述属于此元素的元素。
form <button>, <fieldset>, <input>, <object>, <output>, <select>, <textarea> 指示作为元素所有者的表单。
formaction <input>, <button> 指示元素的动作,覆盖 <form> 中定义的动作。
formenctype <button>, <input> 如果按钮/输入是提交按钮(例如 type="submit"),此属性设置在表单提交期间使用的编码类型。如果指定了此属性,它将覆盖按钮的 form 所有者的 enctype 属性。
formmethod <button>, <input> 如果按钮/输入是提交按钮(例如 type="submit"),此属性设置在表单提交期间使用的提交方法(GETPOST 等)。如果指定了此属性,它将覆盖按钮的 form 所有者的 method 属性。
formnovalidate <button>, <input> 如果按钮/输入是提交按钮(例如 type="submit"),此布尔属性指定在提交表单时不应验证表单。如果指定了此属性,它将覆盖按钮的 form 所有者的 novalidate 属性。
formtarget <button>, <input> 如果按钮/输入是提交按钮(例如 type="submit"),此属性指定在提交表单后显示响应的浏览上下文(例如,选项卡、窗口或内联框架)。如果指定了此属性,它将覆盖按钮的 form 所有者的 target 属性。
headers <td>, <th> 适用于此元素的 <th> 元素的 ID。
height <canvas>, <embed>, <iframe>, <img>, <input>, <object>, <video>

指定此处列出的元素的高度。对于所有其他元素,请使用 CSS height 属性。

注意:在某些情况下,例如 <div>,这是一个旧版属性,在这种情况下,应改用 CSS height 属性。

hidden 全局属性 阻止给定元素的渲染,同时保持子元素(例如脚本元素)处于活动状态。
high <meter> 指示上限的下限。
href <a>, <area>, <base>, <link> 链接资源的 URL。
hreflang <a>, <link> 指定链接资源的语言。
http-equiv <meta> 定义预编译指令。
id 全局属性 常与 CSS 结合使用以设置特定元素的样式。此属性的值必须是唯一的。
integrity <link>, <script>

指定子资源完整性值,允许浏览器验证其获取的内容。

inputmode <textarea>, contenteditable 提供一个提示,说明用户在编辑元素或其内容时可能输入的数据类型。该属性可与表单控件(例如 textarea 元素的值)或编辑宿主中的元素(例如,使用 contenteditable 属性)一起使用。
ismap <img> 指示图像是服务器端图像映射的一部分。
itemprop 全局属性
kind <track> 指定文本轨道的类型。
label <optgroup>, <option>, <track> 指定元素的用户可读标题。
lang 全局属性 定义元素中使用的语言。
language 已废弃 <script> 定义元素中使用的脚本语言。
loading <img>, <iframe> 指示元素应延迟加载(loading="lazy")还是立即加载(loading="eager")。
list <input> 标识一组预定义选项以建议给用户。
loop <audio>, <marquee>, <video> 指示媒体完成播放后是否应从头开始播放。
low <meter> 指示下限的上限。
max <input>, <meter>, <progress> 指示允许的最大值。
maxlength <input>, <textarea> 定义元素中允许的最大字符数。
minlength <input>, <textarea> 定义元素中允许的最小字符数。
媒体 <a>, <area>, <link>, <source>, <style> 为链接资源设计的媒体指定提示。
method(方法) <form> 定义提交表单时使用的 HTTP 方法。可以是 GET(默认)或 POST
min <input>, <meter> 指示允许的最小值。
multiple <input>, <select> 指示是否可以在 emailfile 类型的输入中输入多个值。
muted <audio>, <video> 指示在页面加载时音频是否最初被静音。
name <button>, <form>, <fieldset>, <iframe>, <input>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param> 元素的名称。例如,服务器用于在表单提交中识别字段。
novalidate <form> 此属性指示在提交表单时不应验证表单。
open <details>, <dialog> 指示内容当前是否可见(在 <details> 元素的情况下)或对话框是否处于活动状态且可以交互(在 <dialog> 元素的情况下)。
optimum <meter> 指示最佳数值。
pattern <input> 定义一个正则表达式,元素的VALUE将根据其进行验证。
ping <a>, <area> ping 属性指定一个以空格分隔的 URL 列表,如果用户点击超链接,将通知这些 URL。
placeholder <input>, <textarea> 向用户提供字段中可以输入内容的提示。
playsinline <video> 一个布尔属性,指示视频将“内联”播放;也就是说,在元素的播放区域内播放。请注意,缺少此属性并不意味着视频将始终全屏播放。
poster <video> 一个 URL,指示在用户播放或搜索之前显示的封面帧。
preload <audio>, <video> 指示是否应预加载整个资源、部分资源或不预加载任何资源。
readonly <input>, <textarea> 指示元素是否可以编辑。
referrerpolicy <a>, <area>, <iframe>, <img>, <link>, <script> 指定在获取资源时发送哪个 referrer。
rel <a>, <area>, <link> 指定目标对象与链接对象的关系。
required <input>, <select>, <textarea> 指示此元素是否必填。
reversed <ol> 指示列表应按降序而不是升序显示。
role 全局属性 为辅助技术定义元素的显式角色。
rows <textarea> 定义文本区域中的行数。
rowspan <td>, <th> 定义表格单元格应跨越的行数。
sandbox <iframe> 阻止在 iframe 中加载的文档使用某些功能(例如提交表单或打开新窗口)。
scope <th> 定义标题测试(在 th 元素中定义)相关的单元格。
selected <option> 定义一个在页面加载时将被选中的值。
shape <a>, <area>
size <input>, <select> 定义元素的宽度(以像素为单位)。如果元素的 type 属性是 textpassword,则表示字符数。
sizes <link>, <img>, <source>
slot 全局属性 将影子 DOM 影子树中的一个槽分配给一个元素。
span <col>, <colgroup>
spellcheck 全局属性 指示元素是否允许拼写检查。
src <audio>, <embed>, <iframe>, <img>, <input>, <script>, <source>, <track>, <video> 可嵌入内容的 URL。
srcdoc <iframe>
srclang <track>
srcset <img>, <source> 一个或多个响应式图像候选。
start <ol> 如果不是 1,则定义第一个数字。
step <input>
style 全局属性 定义将覆盖先前设置的样式的 CSS 样式。
summary 已废弃 <table>
tabindex 全局属性 覆盖浏览器默认的 Tab 顺序,改为遵循指定的顺序。
目标 <a>, <area>, <base>, <form> 指定在哪里打开链接文档(在 <a> 元素的情况下)或在哪里显示收到的响应(在 <form> 元素的情况下)
title 全局属性 当鼠标悬停在元素上时,在工具提示中显示的文本。
translate 全局属性 指定当页面本地化时,元素的属性值及其 Text 节点子级的值是否应翻译,或者保持不变。
type <button>, <input>, <embed>, <object>, <ol>, <script>, <source>, <style>, <menu>, <link> 定义元素的类型。
usemap <img>, <input>, <object>
value <button>, <data>, <input>, <li>, <meter>, <option>, <progress>, <param> 定义一个默认值,该值将在页面加载时显示在元素中。
width <canvas>, <embed>, <iframe>, <img>, <input>, <object>, <video>

对于此处列出的元素,这确定了元素的宽度。

注意:对于所有其他情况,例如 <div>,这是一个旧版属性,在这种情况下,应改用 CSS width 属性。

wrap <textarea> 指示文本是否应换行。

内容属性与 IDL 属性

在 HTML 中,大多数属性都有两个方面:内容属性IDL(接口定义语言)属性

内容属性是您从内容(HTML 代码)设置的属性,您可以通过 element.setAttribute()element.getAttribute() 来设置或获取它。即使预期值应为整数,内容属性也始终是字符串。例如,要使用内容属性将 <input> 元素的 maxlength 设置为 42,您必须在该元素上调用 setAttribute("maxlength", "42")

IDL 属性也称为 JavaScript 属性。这些是您可以使用 JavaScript 属性(例如 element.foo)读取或设置的属性。IDL 属性在获取值时总是使用(但可能会转换)底层内容属性来返回值,并在设置值时将内容保存到内容属性中。换句话说,IDL 属性本质上反映了内容属性。

大多数情况下,IDL 属性将按其实际使用方式返回值。例如,<input> 元素的默认 type 是“text”,因此如果您设置 input.type="foobar"<input> 元素的类型将是文本(在外观和行为上),但“type”内容属性的值将是“foobar”。但是,type IDL 属性将返回字符串“text”。

IDL 属性并不总是字符串;例如,input.maxlength 是一个数字(带符号的长整型)。使用 IDL 属性时,您会读取或设置所需类型的值,因此 input.maxlength 总是会返回一个数字,并且当您设置 input.maxlength 时,它需要一个数字。如果您传递另一种类型,它将根据标准 JavaScript 类型转换规则自动转换为数字。

IDL 属性可以反映其他类型,例如无符号长整型、URL、布尔值等。不幸的是,没有明确的规则,IDL 属性与其相应内容属性的交互方式取决于属性本身。大多数情况下,它会遵循规范中规定的规则,但有时并非如此。HTML 规范试图使其尽可能对开发人员友好,但由于各种原因(主要是历史原因),某些属性的行为很奇怪(例如 select.size),您应该阅读规范以确切了解它们的行为方式。

布尔属性

某些内容属性(例如 requiredreadonlydisabled)被称为布尔属性。如果布尔属性存在,其值为 true,如果不存在,其值为 false

HTML 对布尔属性的允许值定义了限制:如果属性存在,其值必须为空字符串(等效地,属性可以没有赋值),或者一个与属性规范名称 ASCII 大小写不敏感匹配的值,没有前导或尾随空格。以下示例是标记布尔属性的有效方式

html
<div itemscope>This is valid HTML but invalid XML.</div>
<div itemscope=itemscope>This is also valid HTML but invalid XML.</div>
<div itemscope="">This is valid HTML and also valid XML.</div>
<div itemscope="itemscope">
  This is also valid HTML and XML, but perhaps a bit verbose.
</div>

需要明确的是,布尔属性不允许使用值 "true""false"。要表示 FALSE 值,必须完全省略该属性。此限制澄清了一些常见的误解:例如,对于 checked="false",元素的 checked 属性将被解释为 true,因为该属性存在。

事件处理程序属性

警告:不鼓励使用事件处理程序内容属性。HTML 和 JavaScript 的混合通常会产生难以维护的代码,并且内容安全策略也可能会阻止事件处理程序属性的执行。

除了上表中列出的属性外,全局事件处理程序(例如 onclick)也可以作为内容属性在所有元素上指定。

所有事件处理程序属性都接受一个字符串。该字符串将用于合成一个 JavaScript 函数,例如 function name(/*args*/) {body},其中 name 是属性的名称,body 是属性的值。处理程序接收的参数与其 JavaScript 事件处理程序对应项相同——大多数处理程序只接收一个 event 参数,而 onerror 接收五个:eventsourcelinenocolnoerror。这意味着您通常可以在属性中使用 event 变量。

html
<div onclick="console.log(event)">Click me!</div>
<!-- The synthesized handler has a name; you can reference itself -->
<div onclick="console.log(onclick)">Click me!</div>

另见