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>

另見