摘要:文本輸入框文本輸入框是最基本的表單組件,它便于用戶輸入各種數(shù)據(jù)。對(duì)大多數(shù)表單組件而言,表單提交后所有具有屬性的組件都會(huì)被提交,即使它們沒有獲值。重置按鈕用于重置所有表單組件為默認(rèn)值。
系列文章說(shuō)明
原文
HTML表單是由組件構(gòu)成的,這些組件是各種瀏覽器都支持的內(nèi)置控件。本文中我們將深入探討它們、了解它們的作用、學(xué)習(xí)如何讓各種瀏覽器更好地支持它們。
雖然這里我們只探討內(nèi)建表單組件,但由于HTML表單有諸多限制、以及不同瀏覽器間的實(shí)現(xiàn)有很多的不同,故web開發(fā)者有時(shí)也得構(gòu)建自定義的表單組件。這部分內(nèi)容將會(huì)在[怎樣創(chuàng)建定制表單組件]()一文中詳細(xì)討論。
文本輸入框文本輸入框是最基本的表單組件,它便于用戶輸入各種數(shù)據(jù)。然而一些文本框也可以專門用來(lái)實(shí)現(xiàn)一些特定需求。
值得注意的是,HTML文本框只是個(gè)純文本輸入控件。這就意味著你不能用它來(lái)進(jìn)行富文本編輯(如加粗、斜體等)。所謂的富文本編輯器其實(shí)都是自定義的組件。
所有文本框都共享一些公共行為:
它們可以被標(biāo)記為只讀(用戶不可修改輸入的值)或者禁用(輸入的值不會(huì)隨著表單的其他部分一起提交)。
它們可擁有一個(gè)占位符;這是一小段在文本輸入框內(nèi)的、用于簡(jiǎn)明描述文本框作用的文本。
它們都受size(輸入框的物理尺寸)和length(文本框能輸入的最大字符數(shù))的約束。
它們可以有拼寫檢查,如果瀏覽器支持的話。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.readonly | 1.0 | 1.0 (1.7 or earlier) | 6 | 1.0 | 1.0 |
.disabled | 1.0 | 1.0 (1.7 or earlier) | 6 | 1.0 | 1.0 |
.placeholder | 10.0 | Unknown (4.0) | 10 | 11.10 | 4.0 |
.placeholder | 10.0 | Unknown (4.0) | 10 | 11.50 | 5.0 |
.size | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.maxlength | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.spellcheck | 10.0 | Unknown (3.6) | 10 | 11.0 | 4.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.readonly | (Yes) | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
.disabled | (Yes) | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
.placeholder | 2.3 | 4.0 (4.0) | ? | 11.10 | 4 |
.placeholder | ? | 4.0 (4.0) | ? | 11.50 | 4 |
.size | (Yes) | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
.maxlength | (Yes) | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
.spellcheck | ? | 4.0 (4.0) | ? | 11.0 | ? |
單行文本框是用type屬性值為text的元素創(chuàng)建的(若未提供type屬性值,text也是個(gè)默認(rèn)屬性)。此外,如果你指定給type屬性的值不被瀏覽器支持,也會(huì)使用text作為回退值。
單行文本框只有一個(gè)約束:若你輸入的文本中有換行,瀏覽器會(huì)在發(fā)送數(shù)據(jù)前將這個(gè)換行給移除。
但是,我們也可以給單行文本框“按需”添加一些約束。這得用到pattern屬性;該屬性會(huì)告訴瀏覽器根據(jù)你選擇的一個(gè)正則表達(dá)式來(lái)驗(yàn)證值的有效性。
HTML5添加了幾個(gè)type屬性的值來(lái)增強(qiáng)基本的單行文本框。雖然這些值仍會(huì)把元素呈現(xiàn)為一個(gè)單行文本框,但實(shí)際上它們還給文本框添加了幾個(gè)額外的約束和特性。
E-mail輸入框該類型的輸入框設(shè)置了type值為email:
它給輸入框添加了這樣的驗(yàn)證約束:用戶需要輸入一個(gè)有效的e-mail地址;其他任何輸入都會(huì)導(dǎo)致輸入框報(bào)錯(cuò)。而通過(guò)設(shè)置multiple屬性,這種輸入框也可以讓用戶輸入多個(gè)e-mail地址。
密碼輸入框該類型的輸入框設(shè)置了type值為password:
它并未給輸入文本添加任何特殊的約束,只是把輸入框的里值做了隱藏以防止被讀取。
搜索框注:注意這只是個(gè)用戶界面的特性;瀏覽器還是會(huì)發(fā)送純文本,除非你用Javascript給文本進(jìn)行編碼。
該類型的輸入框設(shè)置了type值為search:
文本框和搜索框的主要區(qū)別在于外觀和體驗(yàn)上(通常,搜索框會(huì)以圓角呈現(xiàn))。但其實(shí)搜索框還增加了一個(gè)特性:輸入的值可被自動(dòng)保存,以實(shí)現(xiàn)在同一站點(diǎn)的不同頁(yè)面中給出自動(dòng)補(bǔ)全。
電話號(hào)碼輸入框該類型的輸入框設(shè)置了type值為tel:
由于世界上有多種電話號(hào)碼制式,所以此類型的的文本框不會(huì)給用戶輸入的值強(qiáng)制使用任何約束,主要是一個(gè)語(yǔ)義上的區(qū)別而已。雖然在某些設(shè)備上(尤其是手機(jī))點(diǎn)擊該輸入框,會(huì)出現(xiàn)一個(gè)不同的虛擬鍵盤。
URL輸入框該類型的輸入框設(shè)置了type值為url:
為確保只輸入有效的URL,它為輸入框添加了些特殊的驗(yàn)證約束;若輸入的值不是個(gè)符合格式的URL,表單將會(huì)呈現(xiàn)錯(cuò)誤狀態(tài)。
注:URL符合格式并不意味著它指向確切存在的地址。
有特殊約束并處于錯(cuò)誤狀態(tài)的輸入框會(huì)阻止表單提交;此外,為讓錯(cuò)誤提示更明顯,也可以為它們加些樣式,我們將在[表單數(shù)據(jù)驗(yàn)證]()一文中詳細(xì)討論這點(diǎn)。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="text" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.type="email" | 10.0 | Unknown (4.0) | 10 | 10.62 | ? |
.type="password" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.type="search" | 5.0 | Unknown (4.0) | 10 | 11.01 | 5.0 |
.type="tel" | 5.0 | Unknown (4.0) | 10 | 11.01 | 5.0 |
.type="url" | 10.0 | Unknown (4.0) | 10 | 10.62 | ? |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="text" | (Yes) | 4.0 (4.0) | (Yes) | (Yes) | 1.0 |
.type="email" | Not supported | 4.0 (4.0) | Not supported | (Yes) | ? |
.type="password" | ? | 4.0 (4.0) | ? | ? | ? |
.type="search" | Not supported | 4.0 (4.0) | ? | (Yes) | 4.0 |
.type="tel" | 2.3 | 4.0 (4.0) | ? | (Yes) | 3.1 |
.type="url" | Not supported | 4.0 (4.0) | ? | (Yes) | 3.1 |
多行文本框使用了元素而非元素。
多行文本框與普通的單行文本框間的主要不同在于,用戶可以輸入帶有顯式換行(即支持回車[CR]和換行[LF]字符)的文本。
值得注意的是,使用CSS屬性resize,用戶可以直接改變多行文本框大小,如果你想讓他們這么做的話。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
(Yes) | 1.0 (1.7 or earlier) | (Yes) | (Yes) | (Yes) |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
(Yes) | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
下拉組件能讓用戶很方便地從眾多選項(xiàng)中作選擇。HTML有兩種下拉組件:選擇框和自動(dòng)補(bǔ)全組件。這兩者的交互方式是一樣的,一旦控件被激活,瀏覽器會(huì)展示一列表的值讓用戶從中選擇,這個(gè)值列表會(huì)覆蓋在頁(yè)面內(nèi)容之上。
選擇框選擇框是通過(guò)元素創(chuàng)建的,并使用一或多個(gè)元素作為其子元素,每個(gè)都指定了一個(gè)可能的值。
若有需要,選擇框的默認(rèn)值可通過(guò)為相應(yīng)的元素設(shè)置selected屬性進(jìn)行指定。為了給值創(chuàng)建分組,元素亦可嵌套于元素中:
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
1.0 | 1.0 (1.7 or earlier) | (Yes) | (Yes) | (Yes) | |
1.0 | 1.0 (1.7 or earlier) | (Yes) | (Yes) | (Yes) | |
1.0 | 1.0 (1.7 or earlier) | (Yes) | (Yes) | (Yes) |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
1.0 | 4.0 (4.0) | (Yes) | (Yes) | (Yes) | |
1.0 | 4.0 (4.0) | (Yes) | (Yes) | (Yes) | |
1.0 | 4.0 (4.0) | (Yes) | (Yes) | (Yes) |
默認(rèn)的,選擇框只允許用戶選擇一個(gè)值。要讓用戶能選擇多個(gè)值,可通過(guò)給元素添加multiple屬性實(shí)現(xiàn)。但此時(shí),選擇框就不再呈現(xiàn)為一個(gè)下拉組件了,反而呈現(xiàn)為一個(gè)普通的列表框。
自動(dòng)補(bǔ)全組件注:所有支持元素的瀏覽器也都支持它的multiple屬性。
通過(guò)使用元素,你可以給表單組件提供說(shuō)明、自動(dòng)補(bǔ)全的值,并通過(guò)子元素來(lái)指定要呈現(xiàn)的值。設(shè)置好后,這份數(shù)據(jù)列表就能綁定到其他使用了list屬性的組件上了。
一旦數(shù)據(jù)列表附加到一個(gè)表單組件上,它的選項(xiàng)就能被用于自動(dòng)補(bǔ)全用戶輸入的文本;典型的情況是,選項(xiàng)被呈現(xiàn)為一個(gè)帶有可能匹配的值的下拉框。
What"s your favorite fruit?
注:根據(jù)HTML規(guī)范,list屬性和元素可被用于任何需要用戶輸入的組件上。然而,其并未清楚指明如何在非文本控件上使用,同時(shí)不同瀏覽器的實(shí)現(xiàn)也是各有不同。所以,要在非文本控件使用該特性得多加小心。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
20.0 | Unknown (4.0) | 10 | 9.6 | Not supported | |
.list | 20.0 | Unknown (4.0) | 10 | 9.6 | Not supported |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
Not supported | 4.0 (4.0) | Not supported | (Yes) | Not supported | |
.list | Not supported | 4.0 (4.0) | Not supported | (Yes) | Not supported |
可勾選組件指的是可以通過(guò)點(diǎn)擊改變其狀態(tài)的組件。有兩種可勾選組件:復(fù)選框和單選框,它們都可以通過(guò)checked屬性來(lái)指示該組件是否默認(rèn)被勾選。
值得注意的是,這些組件的行為和其他表單組件不太一樣。對(duì)大多數(shù)表單組件而言,表單提交后所有具有name屬性的組件都會(huì)被提交,即使它們沒有獲值。但對(duì)于可勾選組件,它們的值卻只有在它們被勾選之后才會(huì)提交,如果沒有勾選,則不會(huì)提交東西,包括其name屬性。
復(fù)選框復(fù)選框由設(shè)置了type值為checkbox的元素創(chuàng)建:
上面的HTML創(chuàng)建的復(fù)選框是默認(rèn)勾選的。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="checkbox" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="checkbox" | 1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
單選框由設(shè)置了type值為radio的元素創(chuàng)建:
幾個(gè)單選框可以被綁定在一起,只要它們使用相同的name屬性值,它們就被視為同一組選框。而在同一組中,只有一個(gè)選框能被勾選;這意味著其中一個(gè)勾選之后,其他所有選框會(huì)自動(dòng)不勾選。
到了表單提交時(shí),也只有被勾選的值會(huì)被提交;如果沒有勾選,整組單選框會(huì)被認(rèn)為處于未知狀態(tài)且不會(huì)隨表單提交。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="radio" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="radio" | 1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
HTML表單中,有三種按鈕:
提交按鈕
用于發(fā)送表單數(shù)據(jù)給服務(wù)器。
重置按鈕
用于重置所有表單組件為默認(rèn)值。
匿名按鈕
這種按鈕不自帶特效,但也可以通過(guò)Javascript代碼進(jìn)行自定義。
按鈕可以由元素或元素創(chuàng)建。type屬性的值會(huì)指定將呈現(xiàn)何種按鈕。
提交按鈕重置按鈕
匿名按鈕
通常使用或創(chuàng)建的按鈕行為都是一樣的。然而也存在幾點(diǎn)不同:
就如先前的例子所示,元素允許你使用HTML內(nèi)容作為其標(biāo)記內(nèi)容,但元素只接受純文本內(nèi)容。
使用元素是,可以采用和按鈕中內(nèi)容不一樣的值。(但在IE8以下的瀏覽器中這是不可行的)
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="number" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.type="reset" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
.type="button" | 1.0 | 1.0 (1.7 or earlier) | 3 | 1.0 | 1.0 |
1.0 | 1.0 (1.7 or earlier) | (Yes)(Buggy before IE8) | (Yes) | (Yes) |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="number" | 1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
.type="reset" | 1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
.type="button" | 1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
1.0 | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
這一系列的組件能讓用戶輸入一些復(fù)雜或高度結(jié)構(gòu)化的數(shù)據(jù),包括精確或近似數(shù)字、日期和時(shí)間、顏色。
數(shù)字數(shù)字組件是通過(guò)type設(shè)置為number的元素創(chuàng)建的。該控件看起來(lái)像文本框,但卻只允許輸入浮點(diǎn)數(shù),而且通常還會(huì)帶有幾個(gè)按鈕來(lái)增加或減少組件的值。
我們可以通過(guò)設(shè)置min和max屬性來(lái)約束該組件的值。也可以通過(guò)step屬性來(lái)指定該組件的增加和減少按鈕的改變量。
上述代碼創(chuàng)建了一個(gè)取值被限制在1到10之間的數(shù)字組件,其增加和減少按鈕的改變量為2。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="number" | 11.0 | Not supported | 10(recognized but no UI) | (Yes) | 5.2 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="number" | 2.3 | Not supported | Not supported | (Yes) | 4.0 |
另一種選取數(shù)字的方法是使用滑塊。由于操作滑塊看起來(lái)不及文本框輸入數(shù)字精確,所以滑塊常用于選取對(duì)值的要求不是很精確的數(shù)字。
滑塊組件是通過(guò)type設(shè)置為range的元素創(chuàng)建的。適當(dāng)配置滑塊是很重要的,強(qiáng)烈推薦你設(shè)置其min, max, step屬性。
示例中創(chuàng)建了一個(gè)取值被限制在1到5之間的滑塊組件,其增加和減少按鈕的改變量分別為+1和-1。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="range" | 5.0 | 23.0 | 10 | 10.62 | 4.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="range" | Not supported | 23.0 | Not supported | 10.62 | 5.0 |
收集日期和時(shí)間的值在之前往往是web開發(fā)者的噩夢(mèng)。現(xiàn)在HTML5通過(guò)引入一個(gè)特殊的控件用于處理這類特定的數(shù)據(jù),帶來(lái)了一些新改進(jìn)。
日期和時(shí)間控件是通過(guò)type設(shè)置為特定值的元素創(chuàng)建的。因?yàn)槟憧赡芟M苁占掌凇r(shí)間或者兩者兼有,所以它提供了幾個(gè)不同的type屬性值:
date創(chuàng)建展示和選取日期、但不含具體時(shí)間的組件。
datetime創(chuàng)建展示和選取日期、并帶有UTC時(shí)區(qū)時(shí)間的組件。
datetime-local創(chuàng)建展示和選取日期、并帶有任何指定時(shí)區(qū)時(shí)間的組件。
month創(chuàng)建展示和選取月份、并帶有年份的組件。
time創(chuàng)建展示和選取一個(gè)時(shí)間值的組件。
week創(chuàng)建展示和選取周數(shù)、并帶其年份的組件。
所有的日期與時(shí)間控件都可以使用max和min屬性進(jìn)行約束:
When are you available this summer?
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="date" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="datetime" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="datetime-local" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="month" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="time" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="week" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="date" | Not supported | Not supported | Not supported | 10.62 | 5.0 |
.type="datetime" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="datetime-local" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="month" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="time" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
.type="week" | Not supported | Not supported | Not supported | 10.62 | (Yes) |
顏色選擇器警告:日期和時(shí)間組件都是很新的組件,甚至那些聲稱支持它們的瀏覽器也常有重大的用戶界面問(wèn)題,這讓這些組件很難被使用。所以在發(fā)布你的內(nèi)容之前,請(qǐng)先徹底地在不同的瀏覽器上測(cè)試一遍!
通常顏色都有點(diǎn)難于處理,因?yàn)橛性S多種方式來(lái)表示它們:RGB值(十進(jìn)制或十六進(jìn)制)、HSL值、關(guān)鍵字等等。而顏色選擇器能方便用戶以文本或圖形的形式選擇顏色。
顏色組件是通過(guò)type設(shè)置為color的元素創(chuàng)建的。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="color" | 21.0 | Not supported | Not supported | 11.01 | Not supported |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="color" | Not supported | Not supported | Not supported | ? | Not supported |
還有一些組件難以被歸類,因?yàn)樗鼈儞碛幸恍┓浅L厥獾男袨椋坏鋵?shí)它們也是很有用的。
文件選擇器HTML表單可以向服務(wù)器發(fā)送文件,關(guān)于這點(diǎn),在[發(fā)送表單數(shù)據(jù)]()一文中有詳細(xì)的討論。文件選擇器組件是讓用戶選擇一或多個(gè)文件進(jìn)行發(fā)送的一種方式。
文件選擇器組件是通過(guò)type設(shè)置為file的元素創(chuàng)建的。被接收的文件類型可通過(guò)使用accept屬性進(jìn)行指定;此外,若你想讓用戶選擇不止一個(gè)文件,可以添加multiple屬性。
在下面的例子中,我們創(chuàng)建了一個(gè)接收?qǐng)D像圖形文件的文件選擇器,它也允許用戶選擇多個(gè)文件。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="file" | 1.0 | 1.0 (1.7 or earlier) | 3.02 | 1.0 | 1.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="file" | ? | ? | ? | ? | ? |
有時(shí)因?yàn)榧夹g(shù)原因,我們得讓一些隨表單發(fā)送的數(shù)據(jù)對(duì)用戶不可見。要這樣做,你可以在你的表單中添加一個(gè)隱藏元素,只需使用type設(shè)置為hidden的元素。
若你創(chuàng)建了這種元素,還必須設(shè)置其name和value屬性:
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="hidden" | 1.0 | 1.0 (1.7 or earlier) | 2 | 1.0 | 1.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="hidden" | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
圖像按鈕控件表面看起來(lái)就像是
若圖像按鈕被用于提交表單,它不會(huì)提交它的值,而是提交在圖片上點(diǎn)擊的X和Y坐標(biāo)(坐標(biāo)是相對(duì)圖像而言的,取左上角為(0, 0)坐標(biāo))。坐標(biāo)以兩個(gè)鍵/值對(duì)的形式發(fā)送,X值的鍵名是name屬性的值加上字符串".x",Y值的鍵名是name屬性的值加上字符串".y"。這樣就提供了一種便于創(chuàng)建“熱點(diǎn)地圖”的方式。
舉個(gè)例子:
當(dāng)你點(diǎn)擊這個(gè)表單的圖像時(shí),你會(huì)發(fā)送出如下URL:
http://foo.com?pos.x=123&pos.y=456
pos.x和pos.y參數(shù)的值取決于你點(diǎn)擊了圖片上哪個(gè)地方。這些數(shù)據(jù)的發(fā)送和檢索將在[發(fā)送表單數(shù)據(jù)]()一文中討論。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="image" | 1.0 | 1.0 | 2 | 1.0 | 1.0 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
.type="image" | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
度量和進(jìn)度條是數(shù)字值的可視化表示。
進(jìn)度條代表一個(gè)隨時(shí)間變化、直至達(dá)到由max屬性指定的最大值的值。進(jìn)度條使用元素進(jìn)行創(chuàng)建,元素的內(nèi)容用于讓不支持該元素的瀏覽器作降級(jí)處理、也讓無(wú)障礙設(shè)備能讀出來(lái)。
度量條表示一個(gè)處于由min和max值劃分的范圍的固定值。該值被渲染為一個(gè)長(zhǎng)條,長(zhǎng)條使用
75
而要知道該長(zhǎng)條長(zhǎng)什么樣子,我們還得比較它的value值與另外幾個(gè)值:
low和high值將一個(gè)長(zhǎng)條的范圍劃分了三個(gè)部分:
范圍較低的那部分位于min和low之間(含這兩個(gè)值)。
范圍的中間部分位于low和high之間(不含這兩個(gè)值)。
范圍較高的那部分位于high和max之間(含這兩個(gè)值)。
optimum值定義了
若optimum值位于范圍較低的那部分,則較低的那部分是最佳的部分,中間部分是平均的部分,較高的那部分則是最差的部分。
若optimum值位于范圍的中間部分,則較低的那部分是平均的部分,中間部分是最佳的部分,較高的那部分也還是平均的部分。
若optimum值位于范圍較高的那部分,則較低的那部分是最差的部分,中間部分是平均的部分,較高的那部分是最佳的部分。
所有實(shí)現(xiàn)了
若現(xiàn)在的值位于范圍最佳的部分,則長(zhǎng)條顯示為綠色。
若現(xiàn)在的值位于范圍平均的部分,則長(zhǎng)條顯示為黃色。
若現(xiàn)在的值位于范圍最差的部分,則長(zhǎng)條顯示為紅色。
兼容性表
屬性(桌面端) | Chrome | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
6.0 | 6.0(6.0) | 10 | 10.6 | 5.2 | |
6.0 | 16.0(16.0) | Not supported | 11.0 | 5.2 |
屬性(移動(dòng)端) | Android | Firefox (Gecko) | IE | Opera | Safari |
---|---|---|---|---|---|
Not supported | 6.0(6.0) | Not supported | 11.0 | ? | |
Not supported | 16.0(16.0) | Not supported | 11.0 | ? |
若要深入了解表單組件的不同,這里還提供了一些你應(yīng)該看看的有用資源:
The Current State of HTML5 Forms by Wufoo
HTML5 Tests - inputs on Quirksmode (也可用于移動(dòng)端瀏覽器)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/54365.html
摘要:系列文章說(shuō)明原文下面的兼容性表將總結(jié)出表單對(duì)的支持程度,由于和表單的復(fù)雜性,這幾個(gè)表不能認(rèn)為是最佳的參考對(duì)象。該屬性不能生效,或者表現(xiàn)很不一致以至于不可靠。在表單組件上,不支持該屬性。按鈕屬性備注該屬性不會(huì)在上的瀏覽器上生效。 系列文章說(shuō)明 原文 下面的兼容性表將總結(jié)出HTML表單對(duì)CSS的支持程度,由于CSS和HTML表單的復(fù)雜性,這幾個(gè)表不能認(rèn)為是最佳的參考對(duì)象。盡管如此,它們...
摘要:系列文章說(shuō)明原文下面的兼容性表將總結(jié)出表單對(duì)的支持程度,由于和表單的復(fù)雜性,這幾個(gè)表不能認(rèn)為是最佳的參考對(duì)象。該屬性不能生效,或者表現(xiàn)很不一致以至于不可靠。在表單組件上,不支持該屬性。按鈕屬性備注該屬性不會(huì)在上的瀏覽器上生效。 系列文章說(shuō)明 原文 下面的兼容性表將總結(jié)出HTML表單對(duì)CSS的支持程度,由于CSS和HTML表單的復(fù)雜性,這幾個(gè)表不能認(rèn)為是最佳的參考對(duì)象。盡管如此,它們...
摘要:示例多選框和單選框給多選框和單選框添加樣式是很讓人凌亂的。通向漂亮表單之路一些有用的庫(kù)和拓展工具盡管在復(fù)選框和單選框上的表現(xiàn)力已經(jīng)夠用了,但離其支持高級(jí)表單組件仍然遙遙無(wú)期。其表單部分挺有用的。 系列文章說(shuō)明 原文 在本文中,我們將了解如何在HTML表單上使用CSS,為那些難于自定義的表單組件加以樣式。如前文所述,文本框和按鈕很適合使用CSS,而現(xiàn)在我們得來(lái)探索HTML表單樣式的那...
摘要:示例多選框和單選框給多選框和單選框添加樣式是很讓人凌亂的。通向漂亮表單之路一些有用的庫(kù)和拓展工具盡管在復(fù)選框和單選框上的表現(xiàn)力已經(jīng)夠用了,但離其支持高級(jí)表單組件仍然遙遙無(wú)期。其表單部分挺有用的。 系列文章說(shuō)明 原文 在本文中,我們將了解如何在HTML表單上使用CSS,為那些難于自定義的表單組件加以樣式。如前文所述,文本框和按鈕很適合使用CSS,而現(xiàn)在我們得來(lái)探索HTML表單樣式的那...
摘要:一個(gè)表單由一或多個(gè)部件組成,這些部件可以是文本框單行或多行選擇框按鈕復(fù)選框或單選按鈕。在我們的示例里,一個(gè)文本框中用了該屬性的默認(rèn)值,該值表示一個(gè)基本的單行文本框,用于接收無(wú)控制或驗(yàn)證的任何文本。 前言 這個(gè)系列譯自mdn上的一份表單指南,原文詳盡闡述了表單相關(guān)的基礎(chǔ)知識(shí)。而表單作為一個(gè)經(jīng)典的頁(yè)面交互方式,是每個(gè)前端工程師繞不開的話題,通過(guò)翻譯這個(gè)系列的文章既是有助于掃清自己的知識(shí)盲區(qū)...
摘要:在里我們簡(jiǎn)單保存了對(duì)回調(diào)函數(shù)的引用,回調(diào)函數(shù)是由指令傳入的譯者注參考,只要每次組件值發(fā)生改變,就會(huì)觸發(fā)這個(gè)回調(diào)函數(shù)。 原文鏈接:Never again be confused when implementing ControlValueAccessor in Angular?forms showImg(https://segmentfault.com/img/bV7rR7?w=400...
閱讀 3490·2019-08-30 15:53
閱讀 3406·2019-08-29 16:54
閱讀 2190·2019-08-29 16:41
閱讀 2397·2019-08-23 16:10
閱讀 3377·2019-08-23 15:04
閱讀 1342·2019-08-23 13:58
閱讀 347·2019-08-23 11:40
閱讀 2452·2019-08-23 10:26