HTML 属性参考

翻译不完整。 请帮助我们翻译这篇文章!

HTML中的元素拥有属性(attribute);这些额外的属性值可以配置元素或者以各种方式来调整元素的行为,进而满足用户所需的标准。

属性列表

属性名 元素 描述
accept {{ HTMLElement("form") }}, {{ HTMLElement("input") }} 服务器接受内容或文件类型的列表。
accept-charset {{ HTMLElement("form") }} 支持的字符集列表。
accesskey 全局属性 定义键盘快捷键来激活或者聚焦元素
action {{ HTMLElement("form") }} 表单信息提交的url地址,指向进行处理的程序。
align {{ HTMLElement("applet") }}, {{ HTMLElement("caption") }}, {{ HTMLElement("col") }}, {{ HTMLElement("colgroup") }},  {{ HTMLElement("hr") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("img") }}, {{ HTMLElement("table") }}, {{ HTMLElement("tbody") }},  {{ HTMLElement("td") }},  {{ HTMLElement("tfoot") }} , {{ HTMLElement("th") }}, {{ HTMLElement("thead") }}, {{ HTMLElement("tr") }} 设置元素的水平对齐。
allow {{ HTMLElement("iframe") }} Specifies a feature-policy for the iframe.
alt

{{ HTMLElement("applet") }}, {{ HTMLElement("area") }}, {{ HTMLElement("img") }}, {{ HTMLElement("input") }}

在图片无法呈现时的替代文本。
async {{ HTMLElement("script") }} 表示该脚本应该异步执行。
autocapitalize 全局属性 Sets whether input is automatically capitalized when entered by user
autocomplete {{ HTMLElement("form") }}, {{ HTMLElement("input") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }} 表示该表单中是否可以由浏览器自动完成填值。
autofocus {{ HTMLElement("button") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }} 在网页加载后该元素应该自动聚焦。
autoplay {{ HTMLElement("audio") }}, {{ HTMLElement("video") }}  audio或video应该自动播放
background {{ HTMLElement("body") }}, {{ HTMLElement("table") }}, {{ HTMLElement("td") }}, {{ HTMLElement("th") }} 指定图像文件的URL。

注意:虽然浏览器和电子邮件客户端可能仍然支持此属性,但它已过时。改用css{{Cssxref(“back-image”)}}。

bgcolor {{ HTMLElement("body") }}, {{ HTMLElement("col") }}, {{ HTMLElement("colgroup") }}, {{ HTMLElement("marquee") }}, {{ HTMLElement("table") }}, {{ HTMLElement("tbody") }}, {{ HTMLElement("tfoot") }}, {{ HTMLElement("td") }}, {{ HTMLElement("th") }}, {{ HTMLElement("tr") }}

元素的背景颜色。

NOTE:这是一个遗留属性,请使用css{“background-color":}代替。

border {{ HTMLElement("img") }}, {{ HTMLElement("object") }}, {{ HTMLElement("table") }}

边框宽度。

Note:这是遗留属性,请使用 CSS {{ Cssxref("border") }} 属性代替。

buffered {{ HTMLElement("audio") }}, {{ HTMLElement("video") }} 包含已缓存媒体的时间范围。
capture {{ HTMLElement("input") }} From the HTML Media Capture
The definition of 'media capture' in that specification.
spec, specifies a new file can be captured.
challenge {{ HTMLElement("keygen") }} 与公钥一起提交的挑战字符。
charset {{ HTMLElement("meta") }}, {{ HTMLElement("script") }} 申明该页面或脚本的字符编码。
checked {{ HTMLElement("command") }}, {{ HTMLElement("input") }} 指出该元素在页面加载后是否处于选中状态。
cite {{ HTMLElement("blockquote") }}, {{ HTMLElement("del") }}, {{ HTMLElement("ins") }}, {{ HTMLElement("q") }} 包含一个URI,用来指明引用或修改的源地址。
class 全局属性 经常和CSS一起配合使用来修饰元素。
code {{ HTMLElement("applet") }} 标明被加载和执行的applet类文件的URL。
codebase {{ HTMLElement("applet") }} 指出存放applet类文件基本URL地址(绝对或相对),这些文件由code属性标明。
color {{ HTMLElement("basefont") }}, {{ HTMLElement("font") }}, {{ HTMLElement("hr") }}

此属性可用于指定颜色, 颜色值一般有两种表示:

1. 以`#`号开头的RGB十六进制数,如#112233, 其中11表示的是R(红),22表示的是G绿(),33表示的是B(蓝)

2. 颜色的英文单词名,如`red`表示红色

cols {{ HTMLElement("textarea") }} 定义一个textarea中包含多少列。
colspan {{ HTMLElement("td") }}, {{ HTMLElement("th") }} 该属性一般用在td标签中,用于指定一个单元格占用多少列,例如:<td colspan='2'>表示占用一个单元格占2列.
content {{ HTMLElement("meta") }} A value associated with http-equiv or name depending on the context.
contenteditable 全局属性 指出该元素的内容是否可以被编辑。
contextmenu 全局属性 定义将用作元素上下文菜单的{{HTMLElement(“Menu”)}}元素的ID。
controls {{ HTMLElement("audio") }}, {{ HTMLElement("video") }} 指出浏览器是否对用户显示播放控制台(前进或回退)
coords {{ HTMLElement("area") }} A set of values specifying the coordinates of the hot-spot region.
crossorigin {{ HTMLElement("audio") }}, {{ HTMLElement("img") }}, {{ HTMLElement("link") }}, {{ HTMLElement("script") }}, {{ HTMLElement("video") }} How the element handles cross-origin requests
csp {{experimental_inline}} {{ HTMLElement("iframe") }} Specifies the Content Security Policy that an embedded document must agree to enforce upon itself.

data

{{ HTMLElement("object") }}

资源URL地址

data-*

全局属性

允许你对于一个HTML元素绑定自定义的属性。

datetime {{ HTMLElement("del") }}, {{ HTMLElement("ins") }}, {{ HTMLElement("time") }} Indicates the date and time associated with the element.
decoding {{ HTMLElement("img") }} Indicates the preferred method to decode the image.
default {{ HTMLElement("track") }} Indicates that the track should be enabled unless the user's preferences indicate something different.
defer {{ HTMLElement("script") }} Indicates that the script should be executed after the page has been parsed.
dir 全局属性 Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
dirname {{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}
disabled {{ HTMLElement("button") }}, {{ HTMLElement("command") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("optgroup") }}, {{ HTMLElement("option") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }} Indicates whether the user can interact with the element.
download {{ HTMLElement("a") }}, {{ HTMLElement("area") }} Indicates that the hyperlink is to be used for downloading a resource.
draggable 全局属性 Defines whether the element can be dragged.
dropzone 全局属性 Indicates that the element accept the dropping of content on it.
enctype {{ HTMLElement("form") }} Defines the content type of the form date when the method is POST.
enterkeyhint {{experimental_inline}} {{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}, contenteditable The enterkeyhint specifies what action label (or icon) to present for the enter key on virtual keyboards. The attribute can be used with form controls (such as the value of textarea elements), or in elements in an editing host (e.g., using contenteditable attribute).
for {{ HTMLElement("label") }}, {{ HTMLElement("output") }} 描述与当前元素绑定的元素。
form {{ HTMLElement("button") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("label") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("object") }}, {{ HTMLElement("output") }}, {{ HTMLElement("progress") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }} Indicates the form that is the owner of the element.
formaction <input><button> Indicates the action of the element, overriding the action defined in the <form>.
headers {{ HTMLElement("td") }}, {{ HTMLElement("th") }} IDs of the <th> elements which applies to this element.
height {{ HTMLElement("canvas") }}, {{ HTMLElement("embed") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("img") }}, {{ HTMLElement("input") }}, {{ HTMLElement("object") }}, {{ HTMLElement("video") }} 注意:在某些情况下,例如<div>,这是一个遗留属性,在这种情况下应该使用CSS height属性。 在其他情况下,例如<canvas>,必须使用此属性指定高度。
hidden 全局属性 Indicates the relevance of an element.
high {{ HTMLElement("meter") }} Indicates the lower bound of the upper range.
href {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("base") }}, {{ HTMLElement("link") }} 关联资源的URL。
hreflang {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("link") }} Specifies the language of the linked resource.
http-equiv {{ HTMLElement("meta") }}
icon {{ HTMLElement("command") }} Specifies a picture which represents the command.
id 全局属性 Often used with CSS to style a specific element. The value of this attribute must be unique.
ismap {{ HTMLElement("img") }} Indicatesthat the image is part of a server-side image map.
itemprop 全局属性
keytype {{ HTMLElement("keygen") }} Specifies the type of key generated.
kind {{ HTMLElement("track") }} Specifies the kind of text track.
label {{ HTMLElement("track") }} Specifies a user-readable title of the text track.
lang 全局属性 Defines the language used in the element.
language {{ HTMLElement("script") }} Defines the script language used in the element.
list {{ HTMLElement("input") }} Identifies a list of pre-defined options to suggest to the user.
loop {{ HTMLElement("audio") }}, {{ HTMLElement("bgsound") }}, {{ HTMLElement("marquee") }}, {{ HTMLElement("video") }} Indicates whether the media should start playing from the start when it's finished.
low {{ HTMLElement("meter") }} Indicates the upper bound of the lower range.
manifest {{ HTMLElement("html") }} Specifies the URL of the document's cache manifest.
max {{ HTMLElement("input") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("progress") }} Indicates the maximum value allowed.
maxlength {{ HTMLElement("input") }}, {{ HTMLElement("textarea") }} Defines the maximum number of characters allowed in the element.
media {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("link") }}, {{ HTMLElement("source") }}, {{ HTMLElement("style") }} Specifies a hint of the media for which the linked resource was designed.
method {{ HTMLElement("form") }} Defines which HTTP method to use when submitting the form. Can be GET (default) or POST.
min {{ HTMLElement("input") }}, {{ HTMLElement("meter") }} Indicates the minimum value allowed.
multiple {{ HTMLElement("input") }}, {{ HTMLElement("select") }} Indicates whether multiple values can be entered in an input of the type email or file.
name {{ HTMLElement("button") }}, {{ HTMLElement("form") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("object") }}, {{ HTMLElement("output") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}, {{ HTMLElement("map") }}, {{ HTMLElement("meta") }}, {{ HTMLElement("param") }} Name of the element. For example used by the server to identify the fields in form submits.
novalidate {{ HTMLElement("form") }} This attribute indicates that the form shouldn't be validated when submitted.
open {{ HTMLElement("details") }} Indicates whether the details will be shown on page load.
optimum {{ HTMLElement("meter") }} Indicates the optimal numeric value.
pattern {{ HTMLElement("input") }} Defines a regular expression which the element's value will be validated against.
ping {{ HTMLElement("a") }}, {{ HTMLElement("area") }}
placeholder {{ HTMLElement("input") }}, {{ HTMLElement("textarea") }} Provides a hint to the user of what can be entered in the field.
poster {{ HTMLElement("video") }} A URL indicating a poster frame to show until the user plays or seeks.
preload {{ HTMLElement("audio") }}, {{ HTMLElement("video") }} Indicates whether the whole resource, parts of it or nothing should be preloaded.
pubdate {{ HTMLElement("time") }} Indicates whether this date and time is the date of the nearest {{ HTMLElement("article") }} ancestor element.
radiogroup {{ HTMLElement("command") }}
readonly {{ HTMLElement("input") }}, {{ HTMLElement("textarea") }} Indicates whether the element can be edited.
rel {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("link") }} Specifies the relationship of the target object to the link object.
required {{ HTMLElement("input") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }} Indicates whether this element is required to fill out or not.
reversed {{ HTMLElement("ol") }} Indicates whether the list should be displayed in a descending order instead of a ascending.
rows {{ HTMLElement("textarea") }} Defines the number of rows in a textarea.
rowspan {{ HTMLElement("td") }}, {{ HTMLElement("th") }} Defines the number of rows a table cell should span over.
sandbox {{ HTMLElement("iframe") }}
spellcheck 全局属性 Indicates whether spell checking is allowed for the element.
scope {{ HTMLElement("th") }}
scoped {{ HTMLElement("style") }}
seamless {{ HTMLElement("iframe") }}
selected {{ HTMLElement("option") }} Defines a value which will be selected on page load.
shape {{ HTMLElement("a") }}, {{ HTMLElement("area") }}
size {{ HTMLElement("input") }}, {{ HTMLElement("select") }} Defines the width of the element (in pixels). If the element's type attribute is text or password then it's the number of characters.
sizes {{ HTMLElement("link") }}
span {{ HTMLElement("col") }}, {{ HTMLElement("colgroup") }}
src {{ HTMLElement("audio") }}, {{ HTMLElement("embed") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("img") }}, {{ HTMLElement("input") }}, {{ HTMLElement("script") }}, {{ HTMLElement("source") }}, {{ HTMLElement("track") }}, {{ HTMLElement("video") }} The URL of the embeddable content.
srcdoc {{ HTMLElement("iframe") }}
srclang {{ HTMLElement("track") }}
start {{ HTMLElement("ol") }} Defines the first number if other than 1.
step {{ HTMLElement("input") }}
style 全局属性 定义CSS样式,这些样式会覆盖之前设置的样式。
summary {{ HTMLElement("table") }}
tabindex 全局属性 Overrides the browser's default tab order and follows the one specified instead.
target {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("base") }}, {{ HTMLElement("form") }}
title 全局属性 当鼠标悬停在元素上面时,提示框显示的文本。
type {{ HTMLElement("button") }}, {{ HTMLElement("input") }}, {{ HTMLElement("command") }}, {{ HTMLElement("embed") }}, {{ HTMLElement("object") }}, {{ HTMLElement("script") }}, {{ HTMLElement("source") }}, {{ HTMLElement("style") }}, {{ HTMLElement("menu") }} 定义元素的类型。
usemap {{ HTMLElement("img") }},  {{ HTMLElement("input") }}, {{ HTMLElement("object") }}
value {{ HTMLElement("button") }}, {{ HTMLElement("option") }}, {{ HTMLElement("input") }}, {{ HTMLElement("li") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("progress") }}, {{ HTMLElement("param") }} 定义页面加载时,在元素内显示的默认值。
width {{ HTMLElement("canvas") }}, {{ HTMLElement("embed") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("img") }}, {{ HTMLElement("input") }}, {{ HTMLElement("object") }}, {{ HTMLElement("video") }} Note: In some instances, such as {{ HTMLElement("div") }}, this is a legacy attribute, in which case the CSS {{ Cssxref("width") }} property should be used instead. In other cases, such as {{ HTMLElement("canvas") }}, the width must be specified with this attribute.
wrap {{ HTMLElement("textarea") }} Indicates whether the text should be wrapped.

内容属性和 IDL属性

在 HTML 中,大多数属性都有两副面孔:内容属性IDL(接口描述语言)属性

内容属性需要你在内容(HTML 代码)中设置,而且可以通过 {{domxref("element.setAttribute()")}} 或 {{domxref("element.getAttribute()")}}来设置。内容属性常常是一个字符串,即使里面的值是一个证书。例如,要将 {{HTMLElement("input")}} 元素的 maxlength 设置为 42,你需要在元素中调用 setAttribute("maxlength", "42") 。

IDL 属性(attribute)也就是一个 JavaScript 属性(property)。你可以使用 JavaScript 属性如 element.foo 来设置这些属性。当你需要获取 IDL 属性的值时,IDL 属性总会使用隐含的内容属性的值(可能先经过转换)来返回一个值。同样地,当你设置这个值时,这个值会保存在内容属性中。换句话说,IDL 属性本质上反映了内容属性。

大多数时候,IDL 属性会返回元素确实在用的值。例如,{{HTMLElement("input")}} 的默认 type 是 "text",所以如果你设置 input.type="foobar"<input> 元素仍然会是文本类型(在外观上和表现上),但 "type" 内容属性的值是 "foobar"。然而,type IDL 属性依旧会返回字符串 "text"。

IDL attributes 并不总是字符串;例如 input.maxlength 是一个数字(一个有符号的 long 类型)。使用 IDL 属性时,你读取或设置值的类型都是要求的类型。所以 input.maxlength 总会返回一个数字,而如果你要设置 input.maxlength,也需要使用数字。如果你传入了别的类型,则会根据标准 JavaScript 的类型转换规则被转换为数字。

IDL 属性可以 反映其他类型,如 unsigned long, URLs, booleans 等。不幸的是,并没有清晰的规则规定一个属性的 IDL 属性与相关的内容属性如何关联。大多数时候,这会遵守 规范中列出的规则,但有时并不遵守。HTML 规范尝试将这件事尽可能变得对开发者友好,但由于很多原因(大多是历史原因),一些属性表现得很奇怪(例如 select.size),你就需要阅读规范以理解它们实际上到底如何表现。

布尔值属性

一些内容属性(例如 requiredreadonlydisabled)是布尔值属性。如果一个布尔值属性存在,则其值是 true,如果不存在,其值是  false

HTML5 定义了布尔值属性允许的取值:如果属性存在,其值必须是一个空字符串(即该属性的值未分配),或者是一个大小写无关的 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,因为这个属性出现了。

参见