HTML 全局属性

全局属性是所有 HTML 元素共有的属性; 它们可以用于所有元素,尽管属性可能对某些元素没有影响。

全局属性可以用在在所有的 HTML 元素甚至是没有在标准中规定的元素。这意味着任何非标准元素也可以使用这些属性,即使使用这些元素意味着文档不再兼容 HTML5。例如,HTML5 兼容的浏览器会将标记为 <foo hidden>...<foo> 的内容隐藏起来,即使 <foo> 不是有效的 HTML 元素。

除了基本的 HTML 全局属性之外,还存在以下全局属性:

  • xml:langxml:base:这些都是继承自 XHTML 规范的,已经废弃了,但为兼容目的而保留。
  • 多个 aria-* 属性,用于无障碍,改善可访问性。
  • 事件处理程序属性:onabort,
    onautocompleteonautocompleteerroronbluroncanceloncanplayoncanplaythroughonchangeonclickoncloseoncontextmenuoncuechangeondblclickondragondragendondragenterondragexitondragleaveondragoverondragstartondropondurationchangeonemptiedonendedonerroronfocusoninputoninvalidonkeydownonkeypressonkeyuponloadonloadeddataonloadedmetadataonloadstartonmousedownonmouseenteronmouseleaveonmousemoveonmouseoutonmouseoveronmouseuponmousewheelonpauseonplayonplayingonprogressonratechangeonresetonresizeonscrollonseekedonseekingonselectonshowonsortonstalledonsubmitonsuspendontimeupdateontoggleonvolumechangeonwaiting

描述

accesskey

提供生成当前元素的键盘快捷方式的提示。该属性由空格分隔的字符列表组成。浏览器应该使用计算机键盘布局上存在的第一个快捷键。

class

这是元素的类的空格分隔列表。类允许 CSS 和 JavaScript 通过类选择器或类似 Document.getElementsByClassName() 的函数来选择和访问特定元素。

contenteditable

HTML5

这是一个枚举属性,指示该元素是否可由用户编辑。如果是这样,浏览器修改其窗口小部件(widget)以允许编辑。属性必须采用以下值之一:

  • true 或_空字符串_,表示该元素必须是可编辑的;
  • false,表示该元素不能被编辑。

contextmenu

HTML5

这是用作当前元素的上下文菜单的 <menu> 元素的 id

data-*

HTML5

一类属性,称为自定义数据属性,允许专有信息在 HTML 与其 DOM 之间交换,可以通过脚本调用。设置了这个属性的元素就可以通过 Element 接口来访问所有这些自定义数据。可以通过 HTMLElement.dataset 属性来访问它们。

dir

这是一个枚举属性,指示元素的文本方向。它可以有以下值:

  • ltr,这意味着左到右(left to right),用于从左到右的语言(如英文);
  • rtl,这意味着右到左(right to left),用于从右到左的语言(如阿拉伯语);
  • auto,让用户代理决定。它使用基本算法来解析元素内的字符,直到找到具有强方向性的字符,然后将该方向应用于整个元素。

draggable

HTML5 实验性

这是一个枚举属性,指示了元素能否通过拖放 API 拖动。它可以具有以下值:

  • true,表示元素能够被拖动
  • false,表示元素不能被拖动

dropzone

HTML5 实验性

这是一个枚举属性,指示了什么类型的内容可以通过拖放 放置在元素上。它可以具有以下值:

  • copy,这表示放置时将创建被拖动的元素的副本
  • move,表示被拖动的元素将被移动到这个新的位置。
  • link,将创建一个链接到拖动的数据。

hidden

HTML5

一个布尔属性表示该元素还没有,或不再存在,当然这是相对的。例如,它可以用于在登录过程完成之前隐藏不能使用的页面元素。浏览器不会渲染这样的元素。该属性不能用于隐藏可合法显示的内容。

id

定义在整个文档中必须是唯一的标识符(ID)。当需要链接(使用片段标识符),执行脚本或控制样式(使用 CSS)时识别元素。

注意: 以下 5 个 item 开头的属性是 WHATWG HTML 微数据功能的一部分。

itemid

实验性

项目的唯一全局标识符。

itemprop

实验性

用于向项目添加属性。每个 HTML 元素都可以指定一个 itemprop 属性,其中一个 itemprop 由一个名称和值对组成。

itemref

实验性

不属于具有 itemscope 属性的元素的后代的属性可以使用 itemref 与该项相关联。 Itemref 提供了一个元素 id 列表(不是 itemid 的),其中包含了文档其他地方的其他属性。

itemscope

实验性

Itemscope(通常)与 itemtype 一起使用,用于指定块中包含的 HTML 是关于特定项目。itemscope 创建项目,并定义与其关联的项目类型的范围。itemtype 是一个描述项目及其属性上下文的词汇表(例如 schema.org)的有效 URL。

itemtype

实验性

指定将用于在数据结构中定义 itemprop(项目属性)的词汇表的 URL。 Itemscope 用于设置数据结构中由 itemtype 设置的词汇表的活动状态范围。

lang

指定了元素的语言。不管这个元素的内容能否被编辑,都应该写上这个属性。该标签包含了单个条目值,其格式定义在识别语言的标签(BCP47 )的 IETF 文件中。xml:lang 要比它更优先。

slot

实验性

在 shadow DOM 影子树中分配一个插槽到一个元素:具有 slot 属性的元素被分配给由 <slot> 元素创建的插槽,其 name 属性的值与 slot 属性的值相匹配。

spellcheck

HTML5 实验性

一个枚举属性,定义了元素是否要检查拼写错误。它可能具有以下值:

  • true,表示如果可能的话,应该检查拼写错误;
  • false,表示不应该检查拼写错误。

style

包含要应用于元素的 CSS 样式声明。请注意,建议将样式定义在单独的一个或多个文件中。该属性和 <style> 元素的主要目的是允许快速设计样式,例如用于测试目的。

tabindex

一个整数属性,指示元素是否可以获取输入焦点,是否它应该参与顺序键盘导航,如果是,在什么位置。它可以有以下几种值:

负值意味着元素应该是可对焦的,但不能通过顺序键盘导航来达到;

  • 负数表示该元素应该是可以获得焦点的,但不能通过顺序键盘导航来到达;
  • 0 表示元素可以通过顺序键盘导航获得焦点和到达,但其相对顺序由平台约定定义;
  • 正数表示可以通过顺序键盘导航来获得焦点和到达;它的相对顺序由该属性的值定义:顺序按照 tabindex 的数字增值排序。如果几个元素有相同的 tabindex,则它们的相对顺序将跟随它们在文档中的相对位置)。

title

包含了该元素与其所属元素相关的咨询信息的文本。这样的信息通常(但不一定)是以 tooltip 形式呈现给用户的。

translate

HTML5

一个枚举属性,用于指定元素的属性值和文本节点子元素的值是否在页面本地化时被翻译,还是将其保持不变。它可以具有以下值:

  • 空字符串和 "yes",表示元素将被翻译。
  • "no",表示元素不会被翻译。

规范

规范 状态 备注
WHATWG HTML Living Standard
全局属性 的定义
现行的标准 在最新的快照 HTML 5.1 之后,增加了 itemiditempropitemrefitemscopeitemtype
HTML 5.1
全局属性 的定义
推荐 WHATWG HTML Living Standard 的快照。在 HTML5 之后,增加了 spellcheckdraggabledropzone
HTML5
全局属性 的定义
推荐 WHATWG HTML Living Standard 的快照。 在 HTML 4.01 Specification 之后,引入了全局属性的概念,dirlangstyleidclasstabindexaccesskeytitle 现在是真正的全局属性。
xml:lang 最初是 XHTML 的一部分,现在也是 HTML 的一部分。
还增加了 hiddendata-*contextmenucontenteditabletranslate
HTML 4.01 Specification 推荐 没有定义全局属性。在后续规范中,一些元素的中的几个属性将成为全局属性。
classstyle 在除了 <base><basefont><head><html><meta><param><script><style><title> 之外的元素都支持。
dir 在除了 <applet><base><basefont><bdo><br><frame><frameset><iframe><param><script> 之外的元素都支持。
id 在除了 <base><head><html><meta><script><style><title> 之外的元素都支持。
lang 在除了 <applet><base><basefont><br><frame><frameset><iframe><param><script> 之外的元素都支持。
tabindex 只支持 <a><area><button><object><select><textarea> 元素。
accesskey 只支持 <a><area><button><input><label><legend> and <textarea> 元素。
title 在除了 <base><basefont><head><html><meta><param><script><title> 之外的元素都支持。

桌面浏览器兼容性

特性 Chrome Firefox Internet Explorer Opera Safari
accesskey 支持 支持 支持 支持 支持
class 支持 支持 支持 支持 支持
contenteditable 支持 3.0 支持 支持 支持
contextmenu 不支持 9 不支持 不支持 不支持
data-* 支持 6 支持 支持 支持
dir 支持 支持 支持 支持 支持
draggable 支持 2.0 支持 支持 支持
dropzone 未知 不支持 未知 未知 未知
hidden 支持 4.0 支持 支持 支持
id 支持 支持 支持 支持 支持
itemid, itemprop, itemref, itemscope, itemtype 未知 支持 未知 未知 未知
lang 支持 支持 支持 支持 支持
spellcheck 支持 2.0 支持 支持 支持
style 支持 支持 支持 支持 支持
tabindex 支持 支持 支持 支持 支持
title 支持 支持 支持 支持 支持

移动浏览器兼容性

特性 Android Chrome for Android Firefox Mobile IE Mobile Opera Mobile Safari Mobile
accesskey 支持 支持 支持 支持 支持 支持
class 支持 支持 支持 支持 支持 支持
contenteditable 支持 支持 1.0 支持 支持 未知
contextmenu 不支持 不支持 不支持 不支持 不支持 不支持
data-* 支持 支持 6.0 支持 支持 未知
dir 支持 支持 支持 支持 支持 未知
draggable 支持 支持 1.0 支持 支持 未知
dropzone 未知 未知 不支持 未知 未知 未知
hidden 支持 支持 4.0 支持 支持 支持
id 支持 支持 支持 支持 支持 支持
itemid, itemprop, itemref, itemscope, itemtype 未知 未知 支持 未知 未知 未知
lang 支持 支持 支持 支持 支持 支持
spellcheck 支持 支持 1.0 支持 支持 未知
style 支持 支持 支持 支持 支持 支持
tabindex 支持 支持 支持 支持 支持 支持
title 支持 支持 支持 支持 支持 支持

相关链接

  • ElementGlobalEventHandlers 接口允许访问大多数全局属性。