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>