HTML標記語言——表單
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-17 18:55:15 作者:佚名
我要評論
點擊這里返回網(wǎng)頁教學(xué)網(wǎng) HTML教程 欄目.
上文:標記語言——引用
原文出處
chapter 5 表單
互動性一直是互聯(lián)網(wǎng)的重點,讓使用者與網(wǎng)站能夠交換信息,彼此溝通.表單使我們能夠有組織的,使用同一方式的從使用者那里收集資料,因此在設(shè)計網(wǎng)站時總是屬于&qu
點擊這里返回腳本之家 HTML教程 欄目.
上文:標記語言——引用
原文出處 chapter 5 表單
互動性一直是互聯(lián)網(wǎng)的重點,讓使用者與網(wǎng)站能夠交換信息,彼此溝通.表單使我們能夠有組織的,使用同一方式的從使用者那里收集資料,因此在設(shè)計網(wǎng)站時總是屬于"任何狀況都能拿來用"的那一類,舉例來說,我們發(fā)現(xiàn)大概有10000種標記表單的不同方式.好吧,或許沒有那么多,但是我們?nèi)阅芩伎紟追N狀況,讓使用者易于使用表單結(jié)構(gòu),同時也便于讓網(wǎng)站所有者進行管理. 標記表單的方法 方法A:使用表格
長久以來許多人都以表格來標記表單,由于使用頻率很高的緣故,我們已經(jīng)習(xí)慣于見到表單以這種方式進行排版:左列是向右對齊的文字說明,右列則是相左對齊的表單元素.使用單純的兩列表格,是完成易用表單排版的簡單方法之一.
有些人認為不需要表格,也有其他人認為應(yīng)該把表單視為表狀資料.我們不打算支持任何一種說法,但是在某些情況下,使用表格時達成特定表單排版的最佳方法,特別是包含許多種不同元素的復(fù)雜表單(使用了單選框,下拉選框等等的表單).完全依賴CSS處理這種表單的排版可能會讓人感到挫折,而且經(jīng)常需要加上額外的<span>與<div>,會比表格耗上更多的標簽.
接著看圖5-1,這是一般可視化瀏覽器顯示方法A的效果:
圖5-1:瀏覽器顯示的方法A的效果
你會發(fā)現(xiàn),使用表格可以把文字說明表單元素排列的十分整齊.然而,對這樣簡單的表單來說,或許我會避免選擇使用表格,并且換用其他不需要使用這么多標簽的方法.除非表單的視覺設(shè)計十分需要這種排版,否者未必需要使用表格.同時我們也要考慮幾個易用性問題,在研究下面兩個方法的時候,我們就會接觸到這個部分.方法B:不用表格,單擠在一起
上文:標記語言——引用
原文出處 chapter 5 表單
互動性一直是互聯(lián)網(wǎng)的重點,讓使用者與網(wǎng)站能夠交換信息,彼此溝通.表單使我們能夠有組織的,使用同一方式的從使用者那里收集資料,因此在設(shè)計網(wǎng)站時總是屬于"任何狀況都能拿來用"的那一類,舉例來說,我們發(fā)現(xiàn)大概有10000種標記表單的不同方式.好吧,或許沒有那么多,但是我們?nèi)阅芩伎紟追N狀況,讓使用者易于使用表單結(jié)構(gòu),同時也便于讓網(wǎng)站所有者進行管理. 標記表單的方法 方法A:使用表格
<form action="/path/to/script" method="post">
<table>
<tr>
<th>Name:</th>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<th> </th>
<td><input type="submit" value="submit" /></td>
</tr>
</table>
</form>
長久以來許多人都以表格來標記表單,由于使用頻率很高的緣故,我們已經(jīng)習(xí)慣于見到表單以這種方式進行排版:左列是向右對齊的文字說明,右列則是相左對齊的表單元素.使用單純的兩列表格,是完成易用表單排版的簡單方法之一.
有些人認為不需要表格,也有其他人認為應(yīng)該把表單視為表狀資料.我們不打算支持任何一種說法,但是在某些情況下,使用表格時達成特定表單排版的最佳方法,特別是包含許多種不同元素的復(fù)雜表單(使用了單選框,下拉選框等等的表單).完全依賴CSS處理這種表單的排版可能會讓人感到挫折,而且經(jīng)常需要加上額外的<span>與<div>,會比表格耗上更多的標簽.
接著看圖5-1,這是一般可視化瀏覽器顯示方法A的效果:
圖5-1:瀏覽器顯示的方法A的效果
你會發(fā)現(xiàn),使用表格可以把文字說明表單元素排列的十分整齊.然而,對這樣簡單的表單來說,或許我會避免選擇使用表格,并且換用其他不需要使用這么多標簽的方法.除非表單的視覺設(shè)計十分需要這種排版,否者未必需要使用表格.同時我們也要考慮幾個易用性問題,在研究下面兩個方法的時候,我們就會接觸到這個部分.
方法B:不用表格,單擠在一起
<form action="/path/to/script" method="post">
<p>
Name: <input type="text" name="name" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" value="submit" />
</p>
</form>
使用單一段落和幾個<br />標簽隔開所有元素是個可行方法,但視覺上可能會被描繪的有點擠.圖5-2十一版瀏覽器的顯示效果:
圖5-2:瀏覽器顯示方法B的效果
雖然我們不用表格就能完成排版,但是它看起來有點擠,有點丑.同時我們也遇上表單元素?zé)o法完美對齊的問題.
我們能夠以CSS為<input>元素加上一個外補丁,以便減輕擁擠的感覺.像是這樣:
input{
margin:6px 0;
}
前面這段為每個<input>元素的上下分別加上6像素的外補丁(包含了Name,Email的輸入框,以及submit按鈕),在元素之間加上額外的空間.就像圖5-3一樣:
圖5-3.方法B在為input元素加上外補丁之后的效果
方法B本身沒什么大問題,但是還能進行一些微調(diào),以便把表單做得更好.方法C里頭也運用了這些微調(diào)技巧,所以一起來看看吧.
方法C:樸素,更容易使用
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</form>
我喜歡方法C的幾個地方.首先,對于類似本示例的單純表單來說,我發(fā)現(xiàn)把每個說明與表單元素放在單獨的段落比較方便,不加上樣式顯示時,段落之間的預(yù)設(shè)距離應(yīng)該足以讓你輕松閱讀內(nèi)容.稍后我們還能以CSS為表單內(nèi)包含的<p>標簽設(shè)定間隔.
我們甚至更進一步,為表單設(shè)定了唯一的id="thisform".因此,剛才我提到的精確間隔大致上可以寫成這樣:
#thisform p{
margin:6px 0;
}
這代表將這個表單內(nèi)的<p>標簽的上下外補丁設(shè)定為6個像素,覆蓋瀏覽器為一般段落選用的預(yù)設(shè)值.
方法C與前兩種方法的另一個不同之處在于:盡管每個群組(說明和輸入框)都放在<p>里頭,我們?nèi)砸?lt;br />把他們放在獨立的一行.使用<br />分開每個元素,就能繞過文字長短不一,造成輸入項無法完美對齊的問題.
圖5-4是一般瀏覽器顯示方法C的效果,這邊有使用先前為<p>標簽設(shè)定的樣式.
圖5-4.瀏覽器顯示方法C的效果,有對P標簽使用CSS
除了方法C的視覺效果之外,最重要的優(yōu)點:也就是提升易用性的部分.
<label>標簽
使用<label>標簽提升表單的易用性需要兩個步驟,而方法C已經(jīng)完成這兩個步驟了.首先是以<label>將文字說明與相關(guān)的表單元素連接在一起,不管是文字輸入框(text field),文字區(qū)塊輸入框(text area),單選框(radio),多選框(checkbox)等等都好.方法C在"Name:"與"Email:"標題上使用了<label>標簽,把它們與輸入資料的元素連接在一起.
第二步則是為<label>標簽加上for屬性,填上對應(yīng)輸入框的id.
舉例來說.在方法C里面,以<label>標簽把"Name:"包了起來,并且在for屬性里填入與其后面的輸入框id相同的值.
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label> <br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</form>
為什么要用<lable>?
或許聽過其他人說你應(yīng)該在表單內(nèi)加上<label>標簽.而最重要的問題在于為什么應(yīng)該要用<label>標簽.
建立label / ID的關(guān)聯(lián)能讓屏幕閱讀器為每個表單元素讀出正確的標簽,而不收版面排列方法的影響,這是件好事.同時,<label>標簽正是為了標記表單欄標簽而生,使用這個標簽的時候,我們就是在為每個元素說明意義,強化表單的結(jié)構(gòu).
在處理單選,多選框時使用<label>標簽還有個額外的好處,那就是大多數(shù)瀏覽器在使用者點擊<label>內(nèi)文字時也會改變元素的值.這樣能為輸入元素造成更大的點擊區(qū)域,讓行動不便的使用者更容易填寫表單(Mark Pilgrim, "Dive Into Accessibility," http://diveintoaccessibility.org/day_28_labeling_form_elements.html).
舉例來說,如果為表單加上一個多選框,讓使用者能夠選擇"記下這些信息",那么我們就能像這樣的使用<label>標簽了:
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="checkbox" id="remember" name="remember" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" /></p>
</form>
借著以這種方式標記多選框,可以獲得兩個好處:屏幕閱讀器能讀出正確的說明文字(就像這個例子一樣,文字出現(xiàn)在輸入框之后也行),而且能切換多選框的范圍變大了,現(xiàn)在切換范圍除了多選框本身之外,文字部分也包含在內(nèi)(大多數(shù)瀏覽器都支持).
圖5-5就是這個表單在瀏覽器中的顯示效果.我們特別標示了加大之后的多選框切換范圍:
圖5-5.把文字包含在切換范圍內(nèi)的多選框
除了表單與段落之外,最后我還想展示另一個標記表單的方式,使用定義清單.
<form action="/path/to/script" method="post">
<p>
Name: <input type="text" name="name" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" value="submit" />
</p>
</form>
input{
margin:6px 0;
}
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</form>
我喜歡方法C的幾個地方.首先,對于類似本示例的單純表單來說,我發(fā)現(xiàn)把每個說明與表單元素放在單獨的段落比較方便,不加上樣式顯示時,段落之間的預(yù)設(shè)距離應(yīng)該足以讓你輕松閱讀內(nèi)容.稍后我們還能以CSS為表單內(nèi)包含的<p>標簽設(shè)定間隔.
我們甚至更進一步,為表單設(shè)定了唯一的id="thisform".因此,剛才我提到的精確間隔大致上可以寫成這樣:
#thisform p{
margin:6px 0;
}
這代表將這個表單內(nèi)的<p>標簽的上下外補丁設(shè)定為6個像素,覆蓋瀏覽器為一般段落選用的預(yù)設(shè)值.
方法C與前兩種方法的另一個不同之處在于:盡管每個群組(說明和輸入框)都放在<p>里頭,我們?nèi)砸?lt;br />把他們放在獨立的一行.使用<br />分開每個元素,就能繞過文字長短不一,造成輸入項無法完美對齊的問題.
圖5-4是一般瀏覽器顯示方法C的效果,這邊有使用先前為<p>標簽設(shè)定的樣式.
圖5-4.瀏覽器顯示方法C的效果,有對P標簽使用CSS
除了方法C的視覺效果之外,最重要的優(yōu)點:也就是提升易用性的部分.
<label>標簽
使用<label>標簽提升表單的易用性需要兩個步驟,而方法C已經(jīng)完成這兩個步驟了.首先是以<label>將文字說明與相關(guān)的表單元素連接在一起,不管是文字輸入框(text field),文字區(qū)塊輸入框(text area),單選框(radio),多選框(checkbox)等等都好.方法C在"Name:"與"Email:"標題上使用了<label>標簽,把它們與輸入資料的元素連接在一起.
第二步則是為<label>標簽加上for屬性,填上對應(yīng)輸入框的id.
舉例來說.在方法C里面,以<label>標簽把"Name:"包了起來,并且在for屬性里填入與其后面的輸入框id相同的值.
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label> <br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</form>
為什么要用<lable>?
或許聽過其他人說你應(yīng)該在表單內(nèi)加上<label>標簽.而最重要的問題在于為什么應(yīng)該要用<label>標簽.
建立label / ID的關(guān)聯(lián)能讓屏幕閱讀器為每個表單元素讀出正確的標簽,而不收版面排列方法的影響,這是件好事.同時,<label>標簽正是為了標記表單欄標簽而生,使用這個標簽的時候,我們就是在為每個元素說明意義,強化表單的結(jié)構(gòu).
在處理單選,多選框時使用<label>標簽還有個額外的好處,那就是大多數(shù)瀏覽器在使用者點擊<label>內(nèi)文字時也會改變元素的值.這樣能為輸入元素造成更大的點擊區(qū)域,讓行動不便的使用者更容易填寫表單(Mark Pilgrim, "Dive Into Accessibility," http://diveintoaccessibility.org/day_28_labeling_form_elements.html).
舉例來說,如果為表單加上一個多選框,讓使用者能夠選擇"記下這些信息",那么我們就能像這樣的使用<label>標簽了:
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="checkbox" id="remember" name="remember" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" /></p>
</form>
借著以這種方式標記多選框,可以獲得兩個好處:屏幕閱讀器能讀出正確的說明文字(就像這個例子一樣,文字出現(xiàn)在輸入框之后也行),而且能切換多選框的范圍變大了,現(xiàn)在切換范圍除了多選框本身之外,文字部分也包含在內(nèi)(大多數(shù)瀏覽器都支持).
圖5-5就是這個表單在瀏覽器中的顯示效果.我們特別標示了加大之后的多選框切換范圍:
圖5-5.把文字包含在切換范圍內(nèi)的多選框
除了表單與段落之外,最后我還想展示另一個標記表單的方式,使用定義清單.
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label> <br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</form>
或許聽過其他人說你應(yīng)該在表單內(nèi)加上<label>標簽.而最重要的問題在于為什么應(yīng)該要用<label>標簽.
建立label / ID的關(guān)聯(lián)能讓屏幕閱讀器為每個表單元素讀出正確的標簽,而不收版面排列方法的影響,這是件好事.同時,<label>標簽正是為了標記表單欄標簽而生,使用這個標簽的時候,我們就是在為每個元素說明意義,強化表單的結(jié)構(gòu).
在處理單選,多選框時使用<label>標簽還有個額外的好處,那就是大多數(shù)瀏覽器在使用者點擊<label>內(nèi)文字時也會改變元素的值.這樣能為輸入元素造成更大的點擊區(qū)域,讓行動不便的使用者更容易填寫表單(Mark Pilgrim, "Dive Into Accessibility," http://diveintoaccessibility.org/day_28_labeling_form_elements.html).
舉例來說,如果為表單加上一個多選框,讓使用者能夠選擇"記下這些信息",那么我們就能像這樣的使用<label>標簽了:
<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="checkbox" id="remember" name="remember" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" /></p>
</form>
借著以這種方式標記多選框,可以獲得兩個好處:屏幕閱讀器能讀出正確的說明文字(就像這個例子一樣,文字出現(xiàn)在輸入框之后也行),而且能切換多選框的范圍變大了,現(xiàn)在切換范圍除了多選框本身之外,文字部分也包含在內(nèi)(大多數(shù)瀏覽器都支持).
圖5-5就是這個表單在瀏覽器中的顯示效果.我們特別標示了加大之后的多選框切換范圍:
圖5-5.把文字包含在切換范圍內(nèi)的多選框
除了表單與段落之外,最后我還想展示另一個標記表單的方式,使用定義清單.
相關(guān)文章
- 本文主要對HTML5表單新增屬性進行詳細介紹,并附上實例解析,簡單易懂。需要的朋友一起來看下吧2016-12-21
- 下面小編就為大家?guī)硪黄狧TML Form表單元素全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-26
- 下面小編就為大家?guī)硪黄猦tml5表單及新增的改良元素詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-07
- 這篇文章主要為大家介紹了HTML5新增的表單元素和屬性,具有一定的參考價值!需要的朋友可以參考下2014-07-07
HTML5 的新的表單元素(datalist/keygen/output)使用介紹
HTML5 擁有若干涉及表單的元素和屬性,下面為大家介紹下新的表單元素datalist 元素、keygen 元素、output 元素以及它們的使用實例,感興趣的朋友可以參考下哈,希望對大家2013-07-19HTML5之HTML元素擴展(下)—增強的Form表單元素值得關(guān)注
在HTML5增強的元素中,最值得關(guān)注的就是表單元素;在HTML5中,表單已經(jīng)做了重大的修整,一些以前需要通過JavaScript編碼實現(xiàn)的功能現(xiàn)在無需編碼就可輕松實現(xiàn),感興趣的朋友可2013-01-31- 本教程介紹FORM表單標記的各種屬性在網(wǎng)頁設(shè)計中的應(yīng)用. <FORM>標記的NAME屬性 基本語法 01 <Form name="Form_name"> 02 ……2008-10-17
- 假設(shè)現(xiàn)在要在表單中添加這樣一項內(nèi)容:瀏覽所在的城市。這里不說全國的城市,只說省會以上的城市就有幾十個。如果以上面講過的單選按鈕的形式,將這些城市全部羅列在網(wǎng)頁上2008-10-17
- 帶有圖片預(yù)覽功能的上傳表單,完整的HTML代碼如下所示 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=2008-10-17
- 表單是用戶提交信息的重要渠道。本節(jié)就將介紹表單的基礎(chǔ)知識。 表單標簽<form> 表單以一個<form>標簽開始。用戶注冊網(wǎng)站會員,投票等等都需要表單來實現(xiàn)2008-10-17

