摘要:當(dāng)你構(gòu)建表單時(shí),可以試著聽(tīng)一下屏幕閱讀器如何讀取它,若聽(tīng)起來(lái)很奇怪,那就有必要改進(jìn)你的表單結(jié)構(gòu)了。該規(guī)則必須在表單頭部以保證在用戶(hù)找到必填元素之前,屏幕閱讀器等無(wú)障礙設(shè)備能將其展示或讀給用戶(hù)。
系列文章說(shuō)明
原文
在建立HTML表單時(shí),最重要的一件事就是如何用正確的方式構(gòu)建它。而之所以重要,原因有二:一是保證表單能被正確使用、二是這能保證你的表單是無(wú)障礙的(可以被能力不同的人使用)。而正因HTML表單的無(wú)障礙性很重要,故在本文中我們將了解如何使一個(gè)表單無(wú)障礙,這并不很難、只是有幾個(gè)技巧需要你了解下。
表單的靈活性決定了它們是HTML中最復(fù)雜的結(jié)構(gòu)。通過(guò)使用專(zhuān)門(mén)的表單元素和屬性,我們可以建立任何形式的表單。也確實(shí)有過(guò)一些更豐富多彩的腳本技術(shù)如XForms(現(xiàn)已過(guò)時(shí)),但很不幸這些表單技術(shù)并未被各大瀏覽器廣泛應(yīng)用。因此,我們往往得依賴(lài)Javascript來(lái)處理表單;但在本文中,我們只會(huì)詳細(xì)討論如何使用表單元素,若你想知道如何構(gòu)建自定義表單組件,可參閱[怎樣創(chuàng)建定制表單組件]()。
整體結(jié)構(gòu) from元素元素是用來(lái)正式定義表單的元素,其屬性決定了表單會(huì)有什么行為。當(dāng)你想要建立一個(gè)HTML表單時(shí),就必須以該元素開(kāi)頭。很多無(wú)障礙技術(shù)或?yàn)g覽器插件能夠檢測(cè)到元素,同時(shí)他們也實(shí)現(xiàn)了特殊的方式來(lái)讓表單更易于使用。
注:嚴(yán)禁把一個(gè)form元素嵌套在另一個(gè)里邊。那樣會(huì)導(dǎo)致不可預(yù)知的行為,具體取決于用戶(hù)使用了何種瀏覽器。
元素支持下列屬性,它們?nèi)强蛇x的:
元素的屬性
屬性名 | 默認(rèn)值 | 描述 |
---|---|---|
accept-charset | UNKNOWN | 一個(gè)空格分隔或逗號(hào)分隔的列表(HTML5中,只有空格可作為分隔符。),這個(gè)列表包括了服務(wù)器支持的字符編碼。瀏覽器以這些編碼被列舉的順序使用它們。默認(rèn)值是一個(gè)保留字符串“UNKNOWN”。這個(gè)字符串指的是和包含這個(gè)form元素的文檔使用相同的編碼。 |
action | 處理這個(gè)表單所提交信息的程序所在的URL。 | |
autocomplete | on | 指示表單組件是否能夠擁有被瀏覽器自動(dòng)補(bǔ)全的默認(rèn)值。該屬性共有兩個(gè)可選值:on或off。 |
enctype | application/x-www-form-urlencoded | 當(dāng) method 屬性值為 post 時(shí), enctype 是提交form給服務(wù)器的內(nèi)容的 MIME 類(lèi)型 。可能的取值有:application/x-www-form-urlencoded (默認(rèn)值)、multipart/form-data (用于一個(gè) type 屬性設(shè)置為 "file" 的元素)、text/plain (HTML5)。 |
method | get | 瀏覽器使用這種 HTTP 方式來(lái)提交 form。可能的值有:post、get。 |
name | 這個(gè)form的名字。一個(gè)文檔中的多個(gè)form當(dāng)中,name必須唯一而不僅僅是一個(gè)空字符串。作為替代,最好使用id。 | |
novalidate | (false) | 這個(gè)布爾類(lèi)型的屬性指示了,當(dāng)提交時(shí)form是否沒(méi)有被驗(yàn)證。 |
target | _self | 用一個(gè)關(guān)鍵字指示在何處展示提交表單后收到的響應(yīng),展示的地方可以是、標(biāo)簽頁(yè)、瀏覽器窗口等;下面是該屬性幾個(gè)可能的值:_self (把響應(yīng)加載到同一瀏覽器環(huán)境(、標(biāo)簽頁(yè)、瀏覽器窗口等))、_blank (把響應(yīng)加載到一個(gè)新的瀏覽器環(huán)境)、_parent (把響應(yīng)加載到父級(jí)瀏覽器環(huán)境,若無(wú)父級(jí)環(huán)境則和_self一致)、_top (把響應(yīng)加載到最頂層的瀏覽器環(huán)境(即已無(wú)父環(huán)境的瀏覽器環(huán)境),若無(wú)父級(jí)環(huán)境則和_self一致) |
要注意的是,可能你會(huì)經(jīng)常在元素外使用表單組件,而這樣做的話(huà)這些組件就和任何表單都沒(méi)有關(guān)系了。雖然這些表單組件確實(shí)可以用在表單之外,但如此一來(lái)你就得給它們?cè)O(shè)定好用途了,畢竟它們多帶帶使用時(shí)是沒(méi)有特殊效果的,你必須用Javascript來(lái)自定義。
從技術(shù)上講,HTML5已經(jīng)引進(jìn)了一個(gè)form屬性給各個(gè)表單元素,該屬性能讓你明確綁定一個(gè)元素和一個(gè)表單,即使元素不再的內(nèi)部。然而很遺憾,該特性的跨瀏覽器實(shí)現(xiàn)暫時(shí)還沒(méi)能讓人覺(jué)得它是可靠的。
fieldset和legend元素元素可以很方便地用于創(chuàng)建一組具有相同目的的組件。一個(gè)元素可以被一個(gè)元素所標(biāo)記,元素用于明確地描述元素的目的。許多無(wú)障礙技術(shù)會(huì)使用元素作為元素內(nèi)各組件label的一部分。例如,某些屏幕閱讀器如jaws或NVDA會(huì)在讀出各組件的label前先讀出legend里的內(nèi)容。
舉個(gè)小例子:
本例中,屏幕閱讀器會(huì)將為第一個(gè)組件讀出"Fruit juice size small",為第二個(gè)組件讀出"Fruit juice size medium",為第三個(gè)組件讀出"Fruit juice size large"。
上面這個(gè)例子是最重要的用法之一,當(dāng)你有一堆單選按鈕時(shí),你得保證它們嵌套于元素中。而一般來(lái)說(shuō),
由于該元素對(duì)無(wú)障礙技術(shù)的影響,元素已經(jīng)成為構(gòu)建無(wú)障礙表單的關(guān)鍵元素;但這也不是說(shuō)你可以濫用它。當(dāng)你構(gòu)建表單時(shí),可以試著聽(tīng)一下屏幕閱讀器如何讀取它,若聽(tīng)起來(lái)很奇怪,那就有必要改進(jìn)你的表單結(jié)構(gòu)了。
元素支持以下的特有屬性:
元素的屬性
屬性名 | 默認(rèn)值 | 描述 |
---|---|---|
disable | (false) | 若設(shè)置了該布爾值,表單中的后代元素(除了其第一個(gè)元素的后代)將被禁用和禁止編輯。這些元素將不再接收任何瀏覽器事件,譬如鼠標(biāo)點(diǎn)擊或和輸入焦點(diǎn)有關(guān)的事件。通常瀏覽器會(huì)將這些元素顯示為灰色。 |
元素用于給某個(gè)表單組件定義一個(gè)標(biāo)簽。若你想構(gòu)建一個(gè)無(wú)障礙表單,這個(gè)元素可就是最重要的元素了。
元素支持以下的屬性:
元素的屬性
屬性名 | 默認(rèn)值 | 描述 |
---|---|---|
for | 值取在同一文檔中可標(biāo)記的組件的ID。 文檔中第一個(gè)ID值匹配該屬性值的元素就是被這個(gè)label元素標(biāo)記的元素。 |
元素用for屬性綁定其對(duì)應(yīng)的組件,for屬性可引用關(guān)聯(lián)組件的id值。此外組件也可以嵌套于其元素,但即使是這樣,設(shè)置for屬性仍被認(rèn)為是最佳做法,因?yàn)橐恍o(wú)障礙設(shè)備無(wú)法理解label和組件間的隱性關(guān)系(譯注:其實(shí)嵌套就相當(dāng)于自動(dòng)設(shè)置了for屬性,不存在什么隱性關(guān)系,綜合下文來(lái)看也這應(yīng)該屬于“最佳做法”的范疇吧)。
而即使不考慮無(wú)障礙技術(shù),若有一個(gè)指派給特定組件的label,會(huì)讓用戶(hù)在點(diǎn)擊label時(shí),就能在所有瀏覽器下激活相應(yīng)的組件。這就非常有便于使用單選按鈕和復(fù)選框啦。
某些無(wú)障礙設(shè)備在處理指派多個(gè)label的單個(gè)組件時(shí)會(huì)出現(xiàn)問(wèn)題。因此,你得把組件嵌套進(jìn)相關(guān)聯(lián)的元素,才能構(gòu)建一個(gè)無(wú)障礙的表單(譯注:不是很能理解這句話(huà),上面不是說(shuō)這種做法一些無(wú)障礙設(shè)備不能理解嗎?而且解決方法不應(yīng)該是不準(zhǔn)多對(duì)一嗎,和嵌套有半毛錢(qián)關(guān)系?)。
來(lái)看下面這個(gè)例子:
在這個(gè)例子中,第一部分代碼寫(xiě)的是必填元素的規(guī)則。該規(guī)則必須在表單頭部以保證在用戶(hù)找到必填元素之前,屏幕閱讀器等無(wú)障礙設(shè)備能將其展示或讀給用戶(hù)。這樣用戶(hù)才能知道他到底該干嘛。
第一個(gè)文本域是必填的,所以在其label元素內(nèi)指明了該文本域的名字以及該文本域是必填的。如此一來(lái),屏幕閱讀器會(huì)把label讀作"Name star"或"Name required"(這取決于屏幕閱讀器的設(shè)定,通常與第一段寫(xiě)的那些規(guī)則相一致)。而若你使用了兩個(gè)label,那就不能確保用戶(hù)會(huì)被提示該元素是必填的。
第二個(gè)表單元素(譯注:id為birth那個(gè))也采用了同樣的手段,使用上面例子的代碼后,你就能保證用戶(hù)在進(jìn)入該字段時(shí)會(huì)被告知如何格式化日期數(shù)據(jù)了。
output元素該元素用于存放計(jì)算的輸出結(jié)果,它定義了用于獲取運(yùn)算數(shù)據(jù)的輸入框和用于展示結(jié)果的元素間的聯(lián)系。對(duì)于一些無(wú)障礙技術(shù)來(lái)講,該元素也可以認(rèn)為是一個(gè)保持活動(dòng)的區(qū)域(也就是說(shuō)當(dāng)元素的內(nèi)容發(fā)生變化時(shí),無(wú)障礙設(shè)備就能感知該變化并能對(duì)其做出響應(yīng))。
"
元素的屬性
屬性名 | 默認(rèn)值 | 描述 |
---|---|---|
for | 一個(gè)用空格分隔的其他元素的ID列表,指示那些提供輸入值(或其他效應(yīng))參與運(yùn)算的元素 |
除了一些表單的具體結(jié)構(gòu),我們還應(yīng)知道表單其實(shí)就是HTML代碼。這就意味著你可以用所有的HTML技術(shù)來(lái)構(gòu)建一個(gè)表單。
就如你已經(jīng)看到的例子中那樣,通常我們會(huì)把一個(gè)label及其對(duì)應(yīng)的組件包裹在一個(gè)
或 而除了元素,我們通常也會(huì)使用HTML的標(biāo)題和section來(lái)構(gòu)建復(fù)雜的表單。 HTML的列表則常用在使用復(fù)選框和單選框時(shí)。 來(lái)看一個(gè)簡(jiǎn)單的支付表單例子: 看一看執(zhí)行效果吧(這里加了點(diǎn)CSS) 演示 構(gòu)建表單時(shí),我們需要一些組件來(lái)從用戶(hù)那兒收集數(shù)據(jù)。所以在本文中,我們還將看到如何呈現(xiàn)這些組件;若你想了解這些組件是如何工作的,可參見(jiàn)[原生表單組件]()。 這個(gè)元素相當(dāng)特殊,因?yàn)樗梢宰兂刹簧贃|西。只要簡(jiǎn)單設(shè)置下其type屬性,它就能發(fā)生大變化。為簡(jiǎn)單起見(jiàn),type的值可歸為四種類(lèi)型:?jiǎn)涡形谋究?、無(wú)文本輸入的控件、日期控件和按鈕。而正因這種多樣性,元素支持眾多屬性,但我們很難知道其中那個(gè)是相關(guān)的、哪個(gè)是必須的,這取決于type屬性的值。 下面的表格就是一個(gè)匯總(要獲得完整的屬性列表,請(qǐng)?jiān)L問(wèn)元素的頁(yè)面): 如果我們給type屬性設(shè)置的值不被瀏覽器支持,那它就會(huì)把元素渲染為和使用text值一樣的效果。這樣能確保表單可以使用,即使它看起來(lái)不那么吸引人。 雖然元素是個(gè)強(qiáng)大的工具,但它也并非萬(wàn)能,所以還得一些其他元素來(lái)處理這些力不能及的情況。 該元素用于聲明多行文本框。其行為與單行文本框基本一致,除了能讓用戶(hù)在輸入文本時(shí)換行。此外該元素也接受幾個(gè)額外的屬性,以控制其在渲染時(shí)能占多大地方: 元素的屬性 注意元素的用法與元素稍有不同。元素是個(gè)自閉合元素,這意味著它不能包含任何子元素。而另一方面,元素則是個(gè)可以直接包含文本內(nèi)容的普通元素。 這就造成兩個(gè)影響: 若你想給元素定義默認(rèn)值,你得使用valur屬性;而對(duì)于元素,你只需把默認(rèn)文本置于其起始標(biāo)簽之間即可。 默認(rèn)地,元素只接受文本內(nèi)容;也就是說(shuō)任何輸入到元素內(nèi)的HTML內(nèi)容都會(huì)以純文本的形式顯示出來(lái)。 下面這個(gè)例子中,元素會(huì)以相同形式渲染出來(lái): 元素能讓你構(gòu)建選擇框(也叫組合框)。選擇框是一種讓用戶(hù)選擇一或多個(gè)預(yù)定義的值的組件。單值和多值選擇框的不同將在[原生表單組件]()一文中進(jìn)行討論。 選擇框中的每個(gè)值都會(huì)用一個(gè)元素進(jìn)行定義,而這些元素也可以置于元素中進(jìn)行分組。 來(lái)看個(gè)例子: 若元素設(shè)置了value屬性,那么在表單提交時(shí)該值就會(huì)被提交。若value屬性未設(shè)置,則使用元素的內(nèi)容作為整個(gè)選擇框的值。 至于元素,其label屬性將會(huì)先于其內(nèi)容進(jìn)行展示。而且它雖然看起來(lái)像一個(gè)選項(xiàng),但實(shí)質(zhì)上它是不可選的。 元素的屬性 元素的屬性 該元素通過(guò)為給定的組件預(yù)設(shè)值,實(shí)現(xiàn)了對(duì)已有組件的拓展,最廣為人知的例子就是文本框的自動(dòng)補(bǔ)全列表了。這些用于填充的值實(shí)際上是通過(guò)元素里的元素進(jìn)行設(shè)置的。 要把元素和某個(gè)組件綁定起來(lái),你得先設(shè)置目標(biāo)組件的list屬性;該屬性需指定為相應(yīng)的元素的id屬性。 元素是最近才被加入到HTML表單中的,故仍有些瀏覽器不支持它。這里有一個(gè)巧妙的兼容技巧,用于應(yīng)對(duì)這些瀏覽器: 支持的瀏覽器將會(huì)忽略其中那些非元素,且最終效果和預(yù)期的一樣。而支持的瀏覽器將會(huì)顯示label和選擇框。當(dāng)然,也有別的方法來(lái)處理缺乏支持的問(wèn)題,但那得用到j(luò)avascript,而這通常不是個(gè)好的選擇。 這兩個(gè)元素常用于圖形化展示給定的數(shù)字值,兩者的區(qū)別主要是語(yǔ)義上的: progress元素代表一個(gè)在最大值和最小值間隨時(shí)間變化的值。值得注意的是,改變?cè)撛氐闹担ㄒ簿褪秋@示進(jìn)度)必須交給Javascript來(lái)完成,該元素自身沒(méi)有任何機(jī)制來(lái)做到這一點(diǎn)。 默認(rèn)的,這倆元素支持下列特有屬性: 譯注:溢出low、high間的范圍時(shí),瀏覽器會(huì)以特殊樣式顯示 元素的屬性 元素是最便于創(chuàng)建表單按鈕的方式。一個(gè)按鈕可以是三種類(lèi)型質(zhì)疑,由以下type屬性值決定: submmit按鈕會(huì)把表單數(shù)據(jù)發(fā)送給由元素的action屬性定義的頁(yè)面。 reset按鈕會(huì)立即把所有表單組件重置為默認(rèn)值。從用戶(hù)體驗(yàn)的角度看,現(xiàn)在認(rèn)為使用這種按鈕是一種糟糕的、應(yīng)該避免的做法,因?yàn)樗苋菀鬃層脩?hù)不小心就丟掉他們已填寫(xiě)的內(nèi)容。 匿名(button)按鈕就沒(méi)有固有屬性了,你得使用Javascript來(lái)給其實(shí)現(xiàn)功能。 元素的屬性 從技術(shù)上講,用或元素定義的按鈕間基本是沒(méi)有區(qū)別的。只在按鈕的標(biāo)記上有一個(gè)值得注意的區(qū)別:在元素內(nèi)標(biāo)記只能是字符數(shù)據(jù);而在元素內(nèi),標(biāo)記的內(nèi)容可以是HTML,所以此處按鈕的樣式可以被按需定制。 注意:因?yàn)橐恍v史原因,元素一直不被大量使用,且許多表單開(kāi)發(fā)者更傾向于使用由構(gòu)建的按鈕。而罪魁禍?zhǔn)拙褪桥f版本IE的一個(gè)bug,在IE6和IE7中,若你給元素加了name和value屬性,表單就不會(huì)發(fā)送該value屬性而是直接發(fā)送按鈕的內(nèi)容。但這個(gè)bug已經(jīng)在IE8之后給修復(fù)了,所以現(xiàn)在不再有什么理由來(lái)回避使用元素了。 許多用來(lái)定義表單組件的元素?fù)碛幸恍┳约旱膶傩?,而這里還有一個(gè)所有表單元素的公共屬性匯總,它們能給你跨組件的控制能力。下面就是這些公共屬性的列表: ARIA是一項(xiàng)W3C候選推薦標(biāo)準(zhǔn),用于添加到HTML以增強(qiáng)富Internet應(yīng)用的可訪問(wèn)性。我們將在[怎樣創(chuàng)建定制表單組件]()一文中更具體地討論它的使用,但這里有一些基礎(chǔ)知識(shí)需要先知道。 在開(kāi)始之前,要注意瀏覽器上對(duì)ARIA和無(wú)障礙技術(shù)的支持雖然還遠(yuǎn)稱(chēng)不上完美,但也已在持續(xù)改進(jìn)之中了。出現(xiàn)這種問(wèn)題就是因?yàn)?,瀏覽器在遇到ARIA屬性時(shí),必須給操作系統(tǒng)的無(wú)障礙訪問(wèn)層發(fā)送消息,而并不是所有瀏覽器都能跨平臺(tái)地做好這點(diǎn)。同時(shí)無(wú)障礙設(shè)備自身只能鏈接到操作系統(tǒng)的無(wú)障礙訪問(wèn)層去處理瀏覽器傳來(lái)的消息。讓人吃驚的是,有些無(wú)障礙設(shè)備連這點(diǎn)都做不好。 所以使用無(wú)障礙技術(shù)并不意味著你的web應(yīng)用就是無(wú)障礙的,而是意味著你已經(jīng)盡力來(lái)做到這點(diǎn)了。暫時(shí)來(lái)講,ARIA只是盡最大努力的技術(shù),但還是聊勝于無(wú)吧。 若你還想深入了解ARIA和HTML表單的結(jié)合使用,請(qǐng)自行閱讀ARIA文檔的相關(guān)章節(jié)。 該屬性便于在不適用元素時(shí)定義一個(gè)label??蓪⑵浞旁诮M件元素上并引用要作為label的元素的id屬性。 從概念上,這個(gè)屬性與元素的for屬性正好相反。使用for屬性時(shí)引用的是組件的id,而使用aria-labelledby時(shí)則引用label的id。 該屬性和aria-labelledby作用類(lèi)似,主要就是語(yǔ)義上有不同。label用于定義對(duì)象的本質(zhì)內(nèi)容,而描述則提供更多用戶(hù)可能要用到的信息。這個(gè)屬性不建議直接用在表單元素上;最好還是使用aria-labelledby屬性,除非你想為當(dāng)前元素提供額外信息。畢竟該屬性就是用來(lái)提供大段描述的。 該屬性用于給定的組件在DOM中沒(méi)有明確的label時(shí),它能讓你提供一個(gè)能通過(guò)無(wú)障礙設(shè)備使用的組件,而無(wú)需專(zhuān)門(mén)為其創(chuàng)建一個(gè)節(jié)點(diǎn)來(lái)做到這點(diǎn)。 這是最重要的一個(gè)ARIA屬性了,它能讓你為給定的HTML元素提供無(wú)障礙設(shè)備可理解的、特定的語(yǔ)義信息?,F(xiàn)在已經(jīng)有不少可用的role了,且其中一些是表單專(zhuān)用的。 ARIA致力于給那些在HTML中尚不可用的組件、或已經(jīng)存在的元素提供語(yǔ)法,我們將會(huì)在[怎樣創(chuàng)建定制表單組件]()一文中看到如何使用這些role。 用于表單組件的role有: Button Checkbox Progressbar Radio Slider Spinbutton textbox 值得注意的還有幾個(gè)復(fù)合的role: Listbox Radiogroup 若你覺(jué)得這些role很好用,可在這里了解更多;ARIA是個(gè)很龐大的規(guī)范,深入探索它能幫你為遠(yuǎn)超HTML表單之外的領(lǐng)域增強(qiáng)無(wú)障礙性。 現(xiàn)在你已經(jīng)擁有了所有可用于構(gòu)建你的HTML表單的知識(shí);下篇文章將會(huì)深入其實(shí)現(xiàn)細(xì)節(jié)和功能需求:[原生表單組件]()。 A List Apart: Sensible Forms: A Form Usability Checklist 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54366.html
type屬性的值
描述
必要屬性
可選屬性
單行文本框
text
這是最基本的文本框,該值也是type屬性的默認(rèn)值,這時(shí)不會(huì)執(zhí)行自動(dòng)校驗(yàn)
autocomplete, list, maxlength, pattern, placeholder, readonly, required, size, spellcheck
email
用于編輯一或多個(gè)電子郵箱地址的文本框
autocomplete, list, maxlength, multiple, pattern, placeholder, readonly, required, size
password
文本框的值會(huì)被隱藏起來(lái)
autocomplete, list, maxlength, readonly, required, size
search
用于輸入查詢(xún)字符串的文本框
autocomplete, autosave, list, maxlength, pattern, placeholder, readonly, required, size, spellcheck
tel
用于編輯電話(huà)號(hào)碼的文本框
autocomplete, list, maxlength, pattern, placeholder, readonly, required, size
url
用于編輯絕對(duì)URL的文本框
autocomplete, list, maxlength, pattern, placeholder, readonly, required, size
無(wú)文本輸入的控件
checkbox
復(fù)選框
checked, required
color
用于指定顏色的控件
autocomplete, list, required
file
用于讓用戶(hù)選擇文件的控件
accept, multiple, required
hidden
不顯示的控件,但它的值會(huì)被提交給服務(wù)器
number
用于獲得浮點(diǎn)數(shù)的控件
autocomplete, list, max, min, readonly, required, step
radio
單選框
checked, required
range
用于獲得非精確值的控件
autocomplete, list, max, min, required, step
時(shí)間和日期控件(尚未支持,譯注:最新的瀏覽器已實(shí)現(xiàn)了部分控件)
date
用于獲得日期(年月日,沒(méi)有鐘點(diǎn))的控件
autocomplete, list, max, min, readonly, required
datetime
用于獲得日期和時(shí)間(時(shí)分秒,及二分之一秒)的控件,基于UTC時(shí)區(qū)
autocomplete, list, max, min, readonly, required
datetime-local
用于獲得日期和時(shí)間的控件,不含時(shí)區(qū)
autocomplete, list, max, min, readonly, required
month
用于獲得年份和月份的控件,不含時(shí)區(qū)
autocomplete, list, max, min, readonly, required
time
用于獲得時(shí)間的控件,不含時(shí)區(qū)
autocomplete, list, max, min, readonly, required
month
用于獲得年份和周數(shù)的控件,不含時(shí)區(qū)
autocomplete, list, max, min, readonly, required
按鈕
button
無(wú)默認(rèn)行為的按鈕
formaction, formenctype, formmethod, formnovalidate, formtarget
image
圖片按鈕
src, alt
width, height, formaction, formenctype, formmethod, formnovalidate, formtarget
reset
用于將表單內(nèi)容重置為默認(rèn)值的按鈕
formaction, formenctype, formmethod, formnovalidate, formtarget
submmit
用于提交表單的按鈕
formaction, formenctype, formmethod, formnovalidate, formtarget
屬性名
默認(rèn)值
描述
cols
20
文本控件的可視寬度,單位是字符的平均寬度
rows
文本控件的可視文本行數(shù)
wrap
soft
表明控件如何包含文本,可取值為hard或soft
屬性名
默認(rèn)值
描述
label
該屬性是用于描述選項(xiàng)的文本,若label屬性未被定義,那它的值就默認(rèn)取元素的文本內(nèi)容
selected
(false)
目前來(lái)講,該布爾值表明選項(xiàng)是否在一開(kāi)始就被選中
datalist元素
屬性名
默認(rèn)值
描述
label
一組選項(xiàng)的名字。該屬性是強(qiáng)制要有的
屬性名
默認(rèn)值
描述
min
0
度量范圍的數(shù)值下界
max
1
度量范圍的數(shù)值上界
low
min值
比度量范圍的下界要高的數(shù)值界限
high
max值
比度量范圍的上界要低的數(shù)值界限
optimum
最佳數(shù)字值
button元素
屬性名
默認(rèn)值
描述
max
該屬性用于描述對(duì)應(yīng)的任務(wù)完成前需要做多少工作量
屬性名
默認(rèn)值
描述
type
submit
按鈕的類(lèi)型。可能的值有:button, reset, submit
formaction
如果按鈕是個(gè)提交按鈕,該屬性的值會(huì)重寫(xiě)元素的action屬性
formentype
如果按鈕是個(gè)提交按鈕,該屬性的值會(huì)重寫(xiě)元素的enctype屬性
formmethod
如果按鈕是個(gè)提交按鈕,該屬性的值會(huì)重寫(xiě)元素的method屬性
formnovalidate
如果按鈕是個(gè)提交按鈕,該屬性的值會(huì)重寫(xiě)元素的novalidate屬性
formtarget
如果按鈕是個(gè)提交按鈕,該屬性的值會(huì)重寫(xiě)元素的target屬性
公共屬性
使用ARIA來(lái)構(gòu)建HTML表單
屬性名
默認(rèn)值
描述
autofocus
(false)
這個(gè)布爾屬性讓你能夠指定在頁(yè)面加載時(shí)需要自動(dòng)獲得輸入焦點(diǎn)的元素,除非用戶(hù)重寫(xiě)了它,比如在另一控件上輸入。在一個(gè)文檔中,只能有唯一一個(gè)表單元素能指定該值。
disabled
(false)
這個(gè)布爾屬性表明用戶(hù)不能與某個(gè)元素交互。如該屬性未指定,則會(huì)繼承自容器元素如的設(shè)置;若無(wú)容器元素設(shè)置了disabled屬性,則該元素就是可用的
form
和組件關(guān)聯(lián)的form元素。這個(gè)屬性的值必須是同一文檔下某元素的id值。理論上,這能讓你在元素外設(shè)置表單組件。但在實(shí)際應(yīng)用中,并沒(méi)有瀏覽器支持該特性。
name
元素的名字,該屬性會(huì)隨表單數(shù)據(jù)提交
value
指定元素初始值
摘要:一個(gè)表單由一或多個(gè)部件組成,這些部件可以是文本框單行或多行選擇框按鈕復(fù)選框或單選按鈕。在我們的示例里,一個(gè)文本框中用了該屬性的默認(rèn)值,該值表示一個(gè)基本的單行文本框,用于接收無(wú)控制或驗(yàn)證的任何文本。 前言 這個(gè)系列譯自mdn上的一份表單指南,原文詳盡闡述了表單相關(guān)的基礎(chǔ)知識(shí)。而表單作為一個(gè)經(jīng)典的頁(yè)面交互方式,是每個(gè)前端工程師繞不開(kāi)的話(huà)題,通過(guò)翻譯這個(gè)系列的文章既是有助于掃清自己的知識(shí)盲區(qū)...
摘要:并非所有組件受的影響都是平等的如今在表單使用時(shí)依然有一些困難這些問(wèn)題可歸為三類(lèi)還好的若存在跨平臺(tái)問(wèn)題,一些元素可以只添加少許的樣式,有如下幾個(gè)結(jié)構(gòu)元素此外,還有所有的文本框組件單行或多行,以及按鈕。 系列文章說(shuō)明 原文 本文中,我們將學(xué)習(xí)如何使用CSS來(lái)讓HTML表單看起來(lái)更漂亮,這可能需要竅門(mén)才能做到。由于歷史及技術(shù)上的原因,表單組件并不太適合使用CSS;而也正因?yàn)橛羞@些困難,許...
摘要:并非所有組件受的影響都是平等的如今在表單使用時(shí)依然有一些困難這些問(wèn)題可歸為三類(lèi)還好的若存在跨平臺(tái)問(wèn)題,一些元素可以只添加少許的樣式,有如下幾個(gè)結(jié)構(gòu)元素此外,還有所有的文本框組件單行或多行,以及按鈕。 系列文章說(shuō)明 原文 本文中,我們將學(xué)習(xí)如何使用CSS來(lái)讓HTML表單看起來(lái)更漂亮,這可能需要竅門(mén)才能做到。由于歷史及技術(shù)上的原因,表單組件并不太適合使用CSS;而也正因?yàn)橛羞@些困難,許...
摘要:提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的。但幸運(yùn)的是,有一些技巧可以協(xié)助解決由老舊瀏覽器引起的的問(wèn)題。放棄表單和老舊瀏覽器的最大問(wèn)題是對(duì)的支持。結(jié)論如你所見(jiàn),處理老舊瀏覽器所涉及的內(nèi)容不止有表單。 系列文章說(shuō)明 原文 所有的web開(kāi)發(fā)者都會(huì)很快(或者很痛苦地)意識(shí)到Web是一個(gè)粗糙的環(huán)境,其中最糟糕的一點(diǎn)就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的IE。但...
摘要:提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的。但幸運(yùn)的是,有一些技巧可以協(xié)助解決由老舊瀏覽器引起的的問(wèn)題。放棄表單和老舊瀏覽器的最大問(wèn)題是對(duì)的支持。結(jié)論如你所見(jiàn),處理老舊瀏覽器所涉及的內(nèi)容不止有表單。 系列文章說(shuō)明 原文 所有的web開(kāi)發(fā)者都會(huì)很快(或者很痛苦地)意識(shí)到Web是一個(gè)粗糙的環(huán)境,其中最糟糕的一點(diǎn)就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的IE。但...
閱讀 3080·2021-10-27 14:16
閱讀 2889·2021-09-24 10:33
閱讀 2297·2021-09-23 11:21
閱讀 3238·2021-09-22 15:14
閱讀 827·2019-08-30 15:55
閱讀 1689·2019-08-30 15:53
閱讀 1763·2019-08-29 11:14
閱讀 2197·2019-08-28 18:11