全域性屬性

全域性屬性是所有 HTML 元素共有的屬性;它們可以用於所有元素,儘管在某些元素上可能沒有效果。

全域性屬性可以指定在所有 HTML 元素上,即使是那些非標準元素。這意味著任何非標準元素都必須允許這些屬性,即使使用這些元素意味著文件不再是 HTML5 相容的。例如,符合 HTML5 標準的瀏覽器會隱藏標記為 <foo hidden>…</foo> 的內容,儘管 <foo> 不是一個有效的 HTML 元素。

除了基本的 HTML 全域性屬性外,還存在以下全域性屬性:

  • xml:langxml:base——它們繼承自 XHTML 規範,已被棄用,但為了相容性目的而保留。
  • ARIA 的 role 屬性和多個 aria-* 狀態和屬性,用於確保可訪問性。
  • 下面列出的事件處理程式屬性

全域性屬性列表

accesskey

為當前元素生成鍵盤快捷鍵提供提示。該屬性由一個以空格分隔的字元列表組成。瀏覽器應使用列表中第一個存在於計算機鍵盤佈局上的字元。

anchor 非標準

將一個已定位的元素與一個錨點元素關聯起來。該屬性的值是你想要錨定已定位元素的目標元素的 id 值。然後可以使用 CSS 錨定定位來定位該元素。

autocapitalize

控制輸入的文字是否自動大寫,以及以何種方式大寫。

autocorrect

控制輸入的文字是否自動進行拼寫錯誤糾正。這可以應用於具有可編輯文字的元素,但具有以下屬性的 <input> 元素除外:type="password"type="email"type="url"

autofocus

指示一個元素在頁面載入時,或在其所屬的 <dialog> 顯示時立即獲得焦點。此屬性是一個布林值,初始為 false。

class

一個由空格分隔的元素類名列表。類允許 CSS 和 JavaScript 透過類選擇器或諸如 Document.getElementsByClassName() 之類的方法來選擇和訪問特定元素。

contenteditable

一個列舉屬性,指示元素是否應由使用者編輯。如果是,瀏覽器會修改其小部件以允許編輯。該屬性必須取以下值之一:

  • true空字串,表示該元素必須是可編輯的;
  • false,表示該元素必須是不可編輯的。
  • plaintext-only,表示元素的純文字是可編輯的,但富文字格式被停用。
data-*

構成一類稱為自定義資料屬性的屬性,允許在 HTML 和其 DOM 表示之間交換專有資訊,這些資訊可由指令碼使用。所有這些自定義資料都可以透過設定該屬性的元素的 HTMLElement 介面獲得。HTMLElement.dataset 屬性提供了對它們的訪問。

dir

一個列舉屬性,指示元素文字的方向性。它可以有以下值:

  • ltr,表示從左到右,用於從左向右書寫的語言(如英語);
  • rtl,表示從右到左,用於從右向左書寫的語言(如阿拉伯語);
  • auto,讓使用者代理決定。它使用一種基本演算法,解析元素內的字元,直到找到一個具有強方向性的字元,然後將該方向性應用於整個元素。
draggable

一個列舉屬性,指示元素是否可以使用拖放 API 進行拖動。它可以有以下值:

  • true,表示該元素可以被拖動;
  • false,表示該元素不可以被拖動。
enterkeyhint

提示在虛擬鍵盤上為回車鍵呈現何種操作標籤(或圖示)。

exportparts

用於將 shadow parts 從巢狀的 shadow tree 傳遞性地匯出到包含的 light tree 中。

hidden

一個列舉屬性,指示該元素尚不相關或已不再相關。例如,它可以用於隱藏頁面上在登入過程完成前無法使用的元素。瀏覽器不會渲染此類元素。此屬性不得用於隱藏本可以合法顯示的內容。

id

定義一個在整個文件中必須唯一的識別符號(ID)。其目的是在連結(使用片段識別符號)、指令碼或樣式(使用 CSS)時識別該元素。

inert

一個布林值,使瀏覽器忽略元素的使用者輸入事件。當存在點選事件時很有用。

inputmode

向瀏覽器提供有關在編輯此元素或其內容時使用何種虛擬鍵盤配置的提示。主要用於 <input> 元素,但在任何元素處於 contenteditable 模式時也可用。

is

允許你指定一個標準的 HTML 元素應該像一個已註冊的自定義內建元素一樣行事(更多詳情請參閱使用自定義元素)。

注意: item* 屬性是 WHATWG HTML 微資料特性的一部分。

itemid

一個專案的唯一的、全域性的識別符號。

itemprop

用於向一個專案新增屬性。每個 HTML 元素都可以指定一個 itemprop 屬性,其中一個 itemprop 由一個名稱和值對組成。

itemref

不是具有 itemscope 屬性的元素後代的屬性,可以使用 itemref 與該專案關聯。它提供了一個元素 id(非 itemid)列表,這些元素在文件的其他地方具有附加屬性。

itemscope

itemscope(通常)與 itemtype 一起使用,以指定一個塊中包含的 HTML 是關於某個特定專案。itemscope 建立該專案並定義與其關聯的 itemtype 的範圍。itemtype 是一個描述該專案及其屬性上下文的詞彙表(例如 schema.org)的有效 URL。

itemtype

指定將用於定義資料結構中 itemprops(專案屬性)的詞彙表的 URL。itemscope 用於設定由 itemtype 設定的詞彙表在資料結構中生效的範圍。

lang

幫助定義元素的語言:不可編輯元素所使用的語言,或者使用者在可編輯元素中應使用的語言。該屬性應包含一個有效的 BCP 47 語言標籤xml:lang 的優先順序高於它。

nonce

一個密碼學隨機數(“一次性數字”),可被內容安全策略用來確定是否允許進行給定的獲取操作。

part

一個由空格分隔的元素 part 名稱列表。Part 名稱允許 CSS 透過 ::part 偽元素選擇和樣式化 shadow tree 中的特定元素。

popover

用於將元素指定為 popover 元素(參見 Popover API)。Popover 元素透過 display: none 隱藏,直到透過呼叫/控制元素(即帶有 popovertarget 屬性的 <button><input type="button">)或 HTMLElement.showPopover() 呼叫來開啟。

role

Role 定義了內容的語義含義,允許螢幕閱讀器和其他工具以符合使用者對該型別物件的期望的方式呈現和支援與物件的互動。role 透過 role="role_type" 新增到 HTML 元素中,其中 role_type 是 ARIA 規範中角色的名稱。

slot

shadow DOM 影子樹中的一個插槽分配給一個元素:一個帶有 slot 屬性的元素被分配給由 <slot> 元素建立的插槽,該 <slot> 元素的 name 屬性值與該 slot 屬性值匹配。

spellcheck

一個列舉屬性,定義元素是否可以進行拼寫錯誤檢查。它可以有以下值:

  • 空字串或 true,表示該元素應儘可能進行拼寫錯誤檢查;
  • false,表示該元素不應進行拼寫錯誤檢查。
style

包含要應用於該元素的 CSS 樣式宣告。請注意,建議將樣式定義在一個或多個單獨的檔案中。此屬性和 <style> 元素的主要目的是為了快速應用樣式,例如用於測試目的。

tabindex

一個整數屬性,指示元素是否可以接收輸入焦點(是否可聚焦),是否應參與順序鍵盤導航,以及如果是,在什麼位置。它可以取幾個值:

  • 一個負值意味著該元素應該是可聚焦的,但不應透過順序鍵盤導航到達;
  • 0 意味著該元素應該是可聚焦的,並且可以透過順序鍵盤導航到達,但其相對順序由平臺約定定義;
  • 一個正值意味著該元素應該是可聚焦的,並且可以透過順序鍵盤導航到達;元素獲得焦點的順序是 tabindex 值的遞增順序。如果多個元素共享相同的 tabindex,它們的相對順序遵循它們在文件中的相對位置。
title

包含表示與其所屬元素相關的建議資訊的文字。此類資訊通常(但不一定)會以工具提示的形式呈現給使用者。

translate

一個列舉屬性,用於指定在頁面本地化時,元素的屬性值及其 Text 節點子節點的值是否應被翻譯,或者保持不變。它可以有以下值:

  • 空字串或 yes,表示該元素將被翻譯。
  • no,表示該元素將不會被翻譯。
virtualkeyboardpolicy 實驗性

一個列舉屬性,用於在平板電腦、手機或其他可能沒有硬體鍵盤的裝置上,控制可編輯內容元素(例如,<input><textarea> 元素,或設定了 contenteditable 屬性的元素)的螢幕虛擬鍵盤行為。

  • auto空字串,當元素獲得焦點或被點選時,自動顯示虛擬鍵盤。
  • manual,將元素上的焦點和點選與虛擬鍵盤的狀態解耦。
writingsuggestions

一個列舉屬性,指示在元素範圍內是否應啟用瀏覽器提供的書寫建議。

  • false,停用瀏覽器的書寫建議。
  • true空字串,啟用書寫建議。

全域性事件處理程式屬性列表

不推薦使用 HTML 事件處理程式屬性;有關其工作原理,請參見HTML 屬性參考

雖然下面列出的屬性適用於所有元素,但它們並非在所有元素上都有用。例如,onvolumechange HTML 屬性被所有元素接受,併為 volumechange 事件附加一個事件監聽器,但只有媒體元素會收到由瀏覽器觸發的 volumechange 事件。對於其他元素,你只能使用 EventTarget.dispatchEvent() 來手動派發一個。某些屬性可以指定在 <body> 上,但它們會轉而監聽 window 上的事件。

規範

規範
VirtualKeyboard API
# dom-elementcontenteditable-virtualkeyboardpolicy
HTML
# the-popover-attribute
HTML
# attr-nonce
HTML
# the-accesskey-attribute
HTML
# the-draggable-attribute
HTML
# attr-autocapitalize
HTML
# the-inert-attribute
HTML
# dom-fe-autofocus
HTML
# attr-lang
HTML
# attr-inputmode
HTML
# attr-translate
HTML
# the-hidden-attribute
HTML
# writing-suggestions
HTML
# the-dir-attribute
HTML
# attr-autocorrect
HTML
# attr-spellcheck
HTML
# attr-data-*
HTML
# attr-slot
HTML
# attr-is
HTML
# attr-enterkeyhint
HTML
# classes
HTML
# the-style-attribute
HTML
# nonce-does-not-update-dom
HTML
# inert-subtrees
HTML
# the-id-attribute
HTML
# the-title-attribute
HTML
# attr-tabindex
HTML
# attr-popover-hint
HTML
# attr-contenteditable
CSS 影子部分
# part-attr
CSS 影子部分
# element-attrdef-html-global-exportparts
DOM
# ref-for-dom-element-slot①
CSS Style Attributes
# style-attribute

瀏覽器相容性

另見

  • 允許查詢大多數全域性屬性的 Element 介面。