欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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:使用表格

<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>&nbsp;</th>
<td><input type="submit" value="submit" /></td>
</tr>
</table>
</form>

長久以來許多人都以表格來標記表單,由于使用頻率很高的緣故,我們已經(jīng)習慣于見到表單以這種方式進行排版:左列是向右對齊的文字說明,右列則是相左對齊的表單元素.使用單純的兩列表格,是完成易用表單排版的簡單方法之一.
有些人認為不需要表格,也有其他人認為應(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的效果
雖然我們不用表格就能完成排版,但是它看起來有點擠,有點丑.同時我們也遇上表單元素無法完美對齊的問題.
我們能夠以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)的多選框
除了表單與段落之外,最后我還想展示另一個標記表單的方式,使用定義清單.
#p# 方法D:定義一個表單

<form action="/path/to/script" id="thisform" method="post">
<dl>
<dt><label for="name">Name:</label></dt>
<dd><input type="text" id"name" name="name" /></dd>
<dt><label for="email">Email:</label></dt>
<dd><input type="text" id="email" name="email" /></dd>
<dt><label for="remember">Remember this info?</label></dt>
<dd><input type="checkbox" id="remember" name="remember" /></dd>
<dt><input type="submit" value="submit" /></dt>
</dl>
</form>

最后討論的表單排版方法,是以定義清單定義每一組說明文字與輸入框.這是有點爭議的方法.我們在定義清單的原始設(shè)計目的的邊緣游走,不過這是在近期逐漸普及的方法,同時也只得本書一提.
本書稍后在第8章回深入討論定義清單.事實上,它們能應(yīng)用的范圍遠超過大多是設(shè)計師的認知:以<dl>排版表單就是個很棒的例子.
你應(yīng)該發(fā)現(xiàn)了這個范圍里面的每組表單說明文字都放在定義名詞標簽<dt>之內(nèi),隨后跟著放在定義描述標簽<dd>中的表單元素.這么做能將說明文字與表單元素對配起來,并且在不使用任何樣式時以瀏覽器顯示的效果見圖5-6:

圖5-6.以清單定義排版表單的顯示效果
根據(jù)預(yù)設(shè)值,大多數(shù)可視化瀏覽器會把<dd>縮進顯示在單獨一行之內(nèi).太棒了,因為這樣便不必使用任何多余的<p>或<br />標簽了就能讓不支持CSS的瀏覽器顯示出容易使用的表單排版效果.
定義樣式
最簡單的樣式修改,大概是去掉表單內(nèi)<dd>元素的預(yù)設(shè)縮進:

form dd{
margin:0;
}

前面這一小段css會使方法D范例顯示成圖5-7:

圖5-7. 去掉<dd>縮進效果的定義清單式表單排版
方法A的表格效果,也能借著浮動表單內(nèi)的<dt>元素達成:

form dd {
margin: 0;
}

form dt {
float: left;
padding-right: 10px;
}

在把<dt>元素浮動到左邊之后,包含在<dd>之內(nèi)的表單元素就會排列到右側(cè),像是圖5-8這樣.你應(yīng)該已經(jīng)發(fā)現(xiàn)表單元素不會完美的對齊,但這至少說明了使用<dl>標簽排版表單時,并不代表必須將每個元素都單獨顯示在一行里.

圖5-8.浮動<dt>元件之后的表單排版
事實上,由于多了<dl><dt>和<dd>元素,再加上表單內(nèi)原本就具備的<label>與<input>元素,因此在設(shè)計CSS時,你擁有更多可以指定樣式的對象,而發(fā)揮的空間也變大了.
#p# 概要
看完四種標記同一個簡單表單的不同方法,同時也討論了彼此的優(yōu)缺點,要注意的是,我們?yōu)榉椒–與方法D加上了易用性功能,當然也可以加到頭兩個方法上,在得到這些改進之后,這兩個方法當然也會變得更棒.
這幾個方法沒有哪一個明顯比其他方法要好,或者能當作"最佳解決方案".不過多知道幾種方法很有價值.而你也以組合這四種方法,在你的項目里做出更棒的表單.
方法A: 以視覺效果來說,是個建立表單元素,說明文字的簡介方式,在處理復(fù)雜,龐大的表單時尤其好用. 然而,為了這樣單純的表單使用表格,似乎太麻煩了.
方法B: 簡單的標記法在文字瀏覽器,小屏幕設(shè)備上的顯示效果不錯. 以視覺效果來說,只用<br />會讓排版變得太擁擠.
方法C: 簡單的標記法在文字瀏覽器,小屏幕設(shè)備上顯示效果不錯. 允許說明文字,表單元素的長度變化,不會有對齊的問題. 包含重要的易用性功能(也能使用在先前的方法內(nèi)).
方法D: 結(jié)構(gòu)化標記法在文字瀏覽器,小屏幕設(shè)備上顯示效果不錯. 包含重要的易用性功能(也能應(yīng)用在先前的方法內(nèi)). 說明文字與表單元素能以CSS指定要放在同一行之內(nèi),或是分行擺放.
當你使用方法A或方法B的時候不必感到內(nèi)疚,但是學(xué)會方法C的優(yōu)點,并且把它應(yīng)用到先前的例子里仍然不錯.
方法C也有進步的空間,而我們也將在"技巧延伸"這個單元內(nèi)看到幾個我們能加上的額外功能.我們也會討論一些簡單的CSS樣式.讓我們把表單修飾得更吸引人.
#p# 技巧延伸
在這個單元中,我們會先討論tabindex和accesskey屬性,看看它們?nèi)绾问贡韱巫兊酶尤菀诪g覽.我們也會研究能幫助組織表單區(qū)域的<fieldset>標簽,最后,我們會看一些CSS,因為它能把表單外觀修飾得更漂亮. 神奇的tabindex
我們能輕易加上的功能之一是tabindex屬性.加上tabindex,為它指定一個數(shù)值之后,使用者就能以鍵盤切換正在使用的表單元素(通常是Tab鍵).按下Tab就會依照我們所制定的順序跳到下一個表單元素.根據(jù)預(yù)設(shè)值,每個能互動的元素都隱含有tabindex,但使用tabindex能收回瀏覽器指派的順序,讓你完全掌握控制權(quán).
舉例來說,讓我們?yōu)橄惹暗氖纠?方法C)里面的表單元素加上tabindex屬性:

<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">Name:</label><br />
<input type="text" id="name" name="name" tabindex="1" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" tabindex="2" /></p>
<p><input type="checkbox" id="remember" name="remember" tabindex="3" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" tabindex="4" /></p>
</form>

現(xiàn)在,當使用者在表單內(nèi)切換輸入框的時候,我們能確定切換的順序與我們期望的順序完全相同:Name,Email,Remenber this info與submit按鈕.
在設(shè)計復(fù)雜,單一行有許多輸入框或者其他表單元素的表單時,使用tabindex設(shè)定切換順序的優(yōu)點就顯而易見了.
為何指定切換順序?
除了在我們表單上實施非常簡單之外,還能再次幫助到行動受限的使用者,使其能完全以鍵盤瀏覽表單內(nèi)容.他們不需要抓起鼠標點擊每個部分,只需要用Tab鍵就能依照正確的順序遍歷每個表單元素.請為那些無法同時使用雙手瀏覽網(wǎng)頁的人想想,這真的很有幫助. 為頻繁使用的表單指定快捷鍵
與tabindex類似的.accesskey屬性是另一個容易加上的功能,不僅能幫助行動受限的使用者,對其他人來說也是方便極了.
舉例來說,如果為表單內(nèi)包圍著Name:的<label>標簽上加上accesskey屬性,那么在使用者按下指定的按鍵時,光標就會自動跳到與說明文字相關(guān)的輸入框.
我們來看看達成這個效果所需要的代碼:

<form action="/path/to/script" id="thisform" method="post">
<p><label for="name" accesskey="9" >Name:</label><br />
<input type="text" id="name" name="name" tabindex="1" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" tabindex="2" /></p>
<p><input type="checkbox" id="remember" name="remember" tabindex="3" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" tabindex="4" /></p>
</form>

使用者必須在按下9這個按鍵的時候同時按下Alt或Ctrl鍵,根據(jù)系統(tǒng)而定,之后光標就會立刻移到Name:的輸入框里頭.
容易使用的搜索框
在設(shè)計會經(jīng)常使用的表單時(比如搜索框,用戶登錄等等),加上accesskey屬性格外有用,使用者不必伸手去拿鼠標,就能使用鍵盤立刻切換到適合的位置,開始進行輸入.
有件事必須留意,雖然不是所有瀏覽器都支持accesskey,但是加上這個屬性對支持的瀏覽器使用這很有幫助,舉例來說,要是我們加上accesskey="9"的搜索位置時,windows使用者可以按Alt 9,而Mac使用者則能以Command 9直接切換到搜索輸入框內(nèi)了. 為表單加上樣式
現(xiàn)在有了結(jié)構(gòu)完善的表單,接著讓我們研究一些能夠用來自定顯示效果的CSS技巧吧! 設(shè)定文字輸入框的寬度
處理表單元素需要技巧,因為它們的寬度,高度與瀏覽器種類有關(guān).在表單示例中,我們沒有指定文字輸入框的寬度,讓瀏覽器自動使用預(yù)設(shè)值,一般來說,設(shè)計者或許會以size屬性為<input>元素指定寬度,像這樣:

<input type="text" id="name" name="name" tabindex="1" size="20" />

把大小指定為20代表將文字輸入框的寬度設(shè)置為20字元(而不是像素).根據(jù)瀏覽器的預(yù)設(shè)表單字體,實際的輸入框像素寬度可能會有差異.這使得精確指定表單排版變得有點困難.
如果需要的話,我們能借著CSS以像素為單位控制輸入框(以及其他表單元素)的寬度.舉例來說,讓我們把示例表單中的所有<input>元素寬度設(shè)定成200像素,我們會利用為表單指定id屬性,在這個示例中是thisform.

#thisform input {
width: 200px;
}

這時,所有在#thisform內(nèi)的<input>元素都會變成200像素寬.圖5-9是可視化瀏覽器的顯示效果.

圖5-9 把所有<input>元件寬度設(shè)置成200像素之后的效果
哦喔~多選框和submit按鈕也是<input>元素,因此得到了相同的設(shè)定值,讓我們改以id指定Name和Email輸入框,而不是一次設(shè)定所有的<input>元素的寬度:

#name, #email {
width: 200px;
}

圖5-10是以瀏覽器檢查修正后成果的效果,這時只有兩個文字輸入框是200像素寬的了.

圖5-10.只有文字輸入框是200像素寬的效果
使用<label>自定字體
我們有幾種不同的方法能夠調(diào)整表單內(nèi)文字的大小,字體與色彩,我們再度奉行"利用你使用的標簽"哲學(xué),直接以<label>元素為文字設(shè)定樣式.
我喜歡以<label>元素指定文字樣式,主要是因為,在不少情況下,我們都會希望為說明文字指定獨特的樣式,使它們?nèi)菀着c表單內(nèi)可能出現(xiàn)的其他文字區(qū)分開來,舉例來說,我們可以為表單內(nèi)的所有段落標簽制定獨特的樣式:

#thisform p {
font-family: Verdana, sans-serif;
font-size: 12px;
font-weight: bold;
color: #66000;
}

這會使表單內(nèi)的所有段落文字使用粗糙,酒紅色的Verdana 12像素大小的字體.但是同樣的結(jié)果也能借著為表單內(nèi)的<label>元素指定相同樣式來達成,像這樣:

#thisform label {
font-family: Verdana, sans-serif;
font-size: 12px;
font-weight: bold;
color: #66000;
}

這個樣式的顯示效果見圖5-11.

圖5-11.為label指定樣式的效果
為什么我比較喜歡這個方法?假設(shè)除了說明文字之外,表單還有其他放在<p>當中的指示或文字內(nèi)容.那么在前一種方法內(nèi),這些文字就會使用和<p>相同的樣式設(shè)定了.
也能先為表單中的所有文字制定一種樣式,接著再為<label>特別指定樣式,以便做出獨特的表單元素顯示效果.
使用的CSS大概類似這樣:

#thisform {
font-family: Georgia, serif;
font-size: 12px;
color: #999;
}

#thisform label {
font-family: Verdana, sans-serif;
font-weight: bold;
color: #660000;
}
不需要多余的代碼
或許你或發(fā)現(xiàn),在#thisform label 的定義中沒有重復(fù)font-size:12px;由于<label>元素包含在#thisform之內(nèi),因此他們會繼承這個屬性.在較高層級設(shè)定共享規(guī)則,接著在元素樹底層覆蓋有需要的設(shè)定值是個好習慣.這能節(jié)省不少代碼.除了顯而易見好處之外,也能讓往后的維護工作輕松不少.如果你想改變整個表單的font-family,那么只需要修改一條規(guī)則,而不必修改所有重復(fù)設(shè)定字體的規(guī)則.
想象你設(shè)計了一個網(wǎng)站,全部使用了Georgia字體,最初你在20個不同的規(guī)則中分別加上相同的font-face:Georgia,serif;規(guī)則,過了一星期后,老板跑來找你并且對你說"CEO現(xiàn)在討厭serif字體了,把網(wǎng)站內(nèi)容改用Verdana".這時你的鉆進這20條規(guī)則里,慢慢修改了.
或者是,你也能在更高層級設(shè)定一次這條規(guī)則,比如說指定在<body>元素里,此時整份文檔都匯繼承Georgia字體,除非以其他規(guī)則指定另外的設(shè)定值.現(xiàn)在,當老板要求你進行修改時,你就能回答"沒問題,兩分鐘之后搞定";或者是能把簡易性留給自己,告訴他這需要耗上兩個小時,然后用這些額外的時間上eBay標東西.
OK,當然,你應(yīng)該告訴老板真相,他們應(yīng)該知道你的價值,為公司節(jié)省時間并且善用你找到的新解法. 以<fieldset>制作表單元素群組
使用<fieldset>是個為表單元素分組的便利方法.除此之外,加上敘述用的<legend>則會在大多數(shù)瀏覽器內(nèi),為你做好的表單元素群組加上一個漂亮的邊框.我剛剛有說"漂亮"嗎?嗯,我的確喜歡這種邊框.而我們只需要用上一點CSS,就能使它變得更加迷人.
首先,來看看建立群組是需要哪些標簽.接著為示例表單加上一個群組:

<form action="/path/to/script" id="thisform" method="post">
<fieldset>
<legend>Sign In</legend>
<p><label for="name" accesskey="9" >Name:</label><br />
<input type="text" id="name" name="name" tabindex="1" /></p>
<p><label for="email">Email:</label><br />
<input type="text" id="email" name="email" tabindex="2" /></p>
<p><input type="checkbox" id="remember" name="remember" tabindex="3" />
<label for="remember">Remember this info?</label></p>
<p><input type="submit" value="submit" tabindex="4" /></p>
</fieldset>
</form>

圖5-12是瀏覽器顯示這個群組的效果圖,包含剛加上的<fieldset>與<legend>標簽,以及剛為<label>設(shè)定的CSS樣式.或許你已發(fā)現(xiàn)有條漂亮的邊線圍繞在<fieldset>里面的所有表單元素之外,同時<legend>的內(nèi)容斷開了左上方的邊線.

圖5-12.加上<fieldset>與<legend>之后的表單
我說這個效果"漂亮"的原因是:完全不加上CSS,使用它們的預(yù)設(shè)樣式,它的顯示效果的確讓人相當感動.同時還能加上一些自定屬性,使它變得更有趣,我們馬上動手.
你應(yīng)該也能看出<fieldset>在為表單隔出不同區(qū)塊的時候十分有用,舉例來說,如果我們的示例是個大表單的第一部分,那么以<fieldset>從視覺上隔開這些區(qū)塊的話,不僅語義更清楚,還能使表單結(jié)構(gòu)更明顯,更容易閱讀使用.
為<fieldset>和<legend>加上樣式
我們能使用CSS改寫<fieldset>預(yù)設(shè)邊框與<legend>文字的樣式,與定義其他元素的樣式一樣簡單,首先,我們來修改邊框的顏色和寬度,接著再修改文字本身.
為了使<fieldset>的邊線變得更加細致,我們使用以下的CSS:

#thisform {
font-family: Georgia, serif;
font-size: 12px;
color: #999;
}

#thisform label {
font-family: Verdana, sans-serif;
font-weight: bold;
color: #660000;
}

#thisform fieldset {
border: 1px solid #ccc;
padding: 0 20px;
}

接著為左右兩邊指定20像素的外補丁,并且去掉上下外補丁,為什么要去掉這些外補丁?因為我們的表單說明文字,表單元素都放在<p>標簽內(nèi),因此他們在上下方向上已經(jīng)留足了邊界空白.
圖5-13是指定這些樣式之后的表單顯示效果.

圖5-13.為<fieldset>指定樣式之后的效果
立體的<legend>
最后,為<legend>標簽指定一些樣式,做出立體的邊線效果,讓它看起來像是與<fieldset>元素的邊線連在一起.

#thisform {
font-family: Georgia, serif;
font-size: 12px;
color: #999;
}

#thisform label {
font-family: Verdana, sans-serif;
font-weight: bold;
color: #660000;
}

#thisform fieldset {
border: 1px solid #ccc;
padding: 0 20px;
}

#thisform legend {
font-family: arial, sans-serif;
font-weight: bold;
font-size: 90%;
color: #666;
background: #eee;
border: 1px solid #ccc;
border-bottom-color: #999;
border-right-color: #999;
padding: 4px 8px;
}

如你所見,這里做了幾件事,首先,調(diào)整了<legend>的字體,粗細與大小,接著產(chǎn)生了立體效果,把背景設(shè)為淺灰色,然后在整個<legend>的外面加上配合<fieldset>邊線顏色的單像素邊線,為了達成陰影效果,我們還把底部與右側(cè)的邊線顏色換成深一點的灰色.
字體大小百分比: 由于我們之前為整個#thisform 的字體設(shè)置為font-size:12px;因此要縮小<legend>文字時,我們直接用百分比,在較高層級指定字體大小,接著在底層使用百分比,能夠減輕未來的維護負擔.要調(diào)大整個網(wǎng)站的字體大小么?只要修改一個地方,所有百分比都會隨之改變.事實上,最理想的狀況下,我們可以設(shè)定<body>的初始字型大小,然后在其他所有地方使用百分比.然而在這個示例中,我們選擇在<form>層級指定字體大小.
然后調(diào)整內(nèi)部定,以便文字與邊線之間留下一點空間.就是這樣了!圖5-14顯示的是最后結(jié)果,加上本章內(nèi)的所有CSS代碼,同時仍然使用最簡潔,靈活的表單結(jié)構(gòu).

圖5-14 完成的表單示例,以CSS設(shè)定樣式. 結(jié)論
標記表單有許多方法,不管你使用表格,定義清單,還是最基本的段落標簽進行說明,表單元素的排版,都要記住,本章討論的易用性功能,可以輕易加到任何方法里面.
像是tabindex與accesskey這種屬性可以提升瀏覽效率,而<label>元素與對應(yīng)的id屬性能確保互助設(shè)備可以正確辨識你的表單內(nèi)容.
基礎(chǔ)短小簡介的修改,就能得到更好的結(jié)果.

相關(guān)文章

  • 詳解HTML5表單新增屬性

    本文主要對HTML5表單新增屬性進行詳細介紹,并附上實例解析,簡單易懂。需要的朋友一起來看下吧
    2016-12-21
  • HTML Form表單元素全面了解

    下面小編就為大家?guī)硪黄狧TML Form表單元素全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-26
  • html5表單及新增的改良元素詳解

    下面小編就為大家?guī)硪黄猦tml5表單及新增的改良元素詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-07
  • HTML5新增的表單元素和屬性實例解析

    這篇文章主要為大家介紹了HTML5新增的表單元素和屬性,具有一定的參考價值!需要的朋友可以參考下
    2014-07-07
  • HTML5 的新的表單元素(datalist/keygen/output)使用介紹

    HTML5 擁有若干涉及表單的元素和屬性,下面為大家介紹下新的表單元素datalist 元素、keygen 元素、output 元素以及它們的使用實例,感興趣的朋友可以參考下哈,希望對大家
    2013-07-19
  • HTML5之HTML元素擴展(下)—增強的Form表單元素值得關(guān)注

    在HTML5增強的元素中,最值得關(guān)注的就是表單元素;在HTML5中,表單已經(jīng)做了重大的修整,一些以前需要通過JavaScript編碼實現(xiàn)的功能現(xiàn)在無需編碼就可輕松實現(xiàn),感興趣的朋友可
    2013-01-31
  • HTML表單標記教程(2):

    本教程介紹FORM表單標記的各種屬性在網(wǎng)頁設(shè)計中的應(yīng)用. <FORM>標記的NAME屬性 基本語法 01 <Form name="Form_name"> 02 ……
    2008-10-17
  • HTML表單標記教程(4):

    假設(shè)現(xiàn)在要在表單中添加這樣一項內(nèi)容:瀏覽所在的城市。這里不說全國的城市,只說省會以上的城市就有幾十個。如果以上面講過的單選按鈕的形式,將這些城市全部羅列在網(wǎng)頁上
    2008-10-17
  • 帶有圖片預(yù)覽功能的上傳表單的完整HTML

    帶有圖片預(yù)覽功能的上傳表單,完整的HTML代碼如下所示 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=
    2008-10-17
  • XHTML入門學(xué)習教程:表單標簽

    表單是用戶提交信息的重要渠道。本節(jié)就將介紹表單的基礎(chǔ)知識。 表單標簽<form> 表單以一個<form>標簽開始。用戶注冊網(wǎng)站會員,投票等等都需要表單來實現(xiàn)
    2008-10-17

最新評論