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 |
bgcolor |
<body> , <col> , <colgroup> , <marquee> , <table> , <tbody> , <tfoot> , <td> , <th> , <tr> |
元素的背景颜色。
注意:这是一个旧版属性。请改用 CSS |
border |
<img> , <object> , <table> |
边框宽度。
注意:这是一个旧版属性。请改用 CSS |
capture
|
<input> |
根据 媒体捕获规范,指定可以捕获新文件。 |
字符集
|
<meta>
|
声明页面或脚本的字符编码。 |
checked
|
<input>
|
指示元素是否应在页面加载时选中。 |
cite
|
<blockquote> , <del> , <ins> , <q> |
包含指向引文或更改来源的 URI。 |
class
|
全局属性 | 常与 CSS 结合使用,以使用公共属性设置元素样式。 |
color |
<font> , <hr> |
此属性使用命名颜色或十六进制 #RRGGBB 格式指定的颜色设置文本颜色。
注意:这是一个旧版属性。请改用 CSS |
colorspace
|
<input> |
定义 type="color" 输入使用的颜色空间。 |
cols
|
<textarea> |
定义文本区域中的列数。 |
colspan
|
<td> , <th> |
colspan 属性定义单元格应跨越的列数。 |
content
|
<meta> |
根据上下文,与 http-equiv 或 name 相关联的值。 |
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" ),此属性设置在表单提交期间使用的提交方法(GET 、POST 等)。如果指定了此属性,它将覆盖按钮的 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 |
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> |
指示是否可以在 email 或 file 类型的输入中输入多个值。 |
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 属性是 text 或 password ,则表示字符数。 |
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> |
对于此处列出的元素,这确定了元素的宽度。 |
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
),您应该阅读规范以确切了解它们的行为方式。
布尔属性
某些内容属性(例如 required
、readonly
、disabled
)被称为布尔属性。如果布尔属性存在,其值为 true,如果不存在,其值为 false。
HTML 对布尔属性的允许值定义了限制:如果属性存在,其值必须为空字符串(等效地,属性可以没有赋值),或者一个与属性规范名称 ASCII 大小写不敏感匹配的值,没有前导或尾随空格。以下示例是标记布尔属性的有效方式
<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
接收五个:event
、source
、lineno
、colno
、error
。这意味着您通常可以在属性中使用 event
变量。
<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>