第九天 CSS表單設計

來源:互聯網
上載者:User

今天我們開始學習《十天學會web標準(div+css)》的css表單設計,包含以下內容和知識點:

■改變文字框和文本域樣式
■用圖片美化按鈕
■改變下拉式清單樣式
■用label標籤提升功能使用者體驗
一、改變文字框和文本域樣式
如果前邊幾章學習的比較紮實的話,本節教程就相當容易了。下邊先說一下文字框,文字框和文本域都是可以用css進行美化的。比如改變邊框精細,顏色,添加背景色、背景映像等。請看下邊的執行個體:

 

.text1 { border:1px solid #f60; color:#03C;}
.text2 { border:2px solid #390; width:200px; height:24px; font-size:16px; font-weight:bold; line-height:1.6;}
.text3 { border:2px solid #C3C; height:20px; background:url(icon9.gif) right 3px no-repeat;}
.text4 { border:2px solid #F60; width:150px; height:29px;font-size:16px; line-height:1.6; background:url(bg_9.gif) 0 0 no-repeat;}

這四個樣式表分別對應第2、3、4、5行表單,第一行是文字框的預設樣式;第二行為設定邊框和字型顏色的樣式;第三行為設定邊框、寬度、高度、字型大小、行高的樣式;第四行設定邊框和增加背景色和背景圖片;第五行為增加一個gif動畫的背景圖片,看起來是不是生動許多,具體步驟不再贅述。下面我們看一下文本域的樣式設定:

 

.area { border:1px solid #F90; overflow:auto; background:#fff url(bg_9_1.gif) right bottom no-repeat; width:99%; height:100px;}

中第一個為預設的文本域樣式,第二個為設定邊框、寬度為百分比、高度和景圖片。overflow:auto定義當內容不超過現在文本域高度時不出現捲軸。好了,下面運行一下代碼看看兩者的效果吧

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
.text1 { border:1px solid #f60; color:#03C;}
.text2 { border:2px solid #390; width:200px; height:24px; font-size:16px; font-weight:bold; line-height:1.6;}
.text3 { border:2px solid #C3C; height:20px; background:#ffeeff url(/upload/2010-08/28/icon9.gif) right 3px no-repeat;}
.text4 { border:2px solid #F60; width:150px; height:29px;font-size:16px; line-height:1.6; background:url(/upload/2010-08/28/bg_9.gif) 0 0 no-repeat;}
.area { border:1px solid #F90; overflow:auto; background:#fff url(/upload/2010-08/28/bg_9_1.gif) right bottom no-repeat; width:99%; height:100px;}
</style>
</head>
<body>
<p>
<input type="text" name="textfield" id="textfield" />
這是預設樣式
</p>
<p>
<input name="textfield2" type="text" class="text1" id="textfield2" value="我是藍色的" />

這是改變邊框的樣式和文字顏色
</p>
<p>
<input name="textfield3" type="text" class="text2" id="textfield3" value="看我大吧" />
這是改變邊框並設定高寬和字型大小的樣式
</p>
<p>
<input class="text3" type="text" name="textfield4" id="textfield4" />
這是增加背景圖片執行個體,也可放左側
</p>
<p>
<input class="text4" type="text" name="textfield5" id="textfield5" />
這是增加了一個背景圖片為gif動畫
</p>
<p>
<textarea name="textarea" id="textarea" cols="45" rows="5"></textarea>
</p>
<p>
<textarea class="area" name="textarea2" id="textarea2" cols="45" rows="5"></textarea>
</p>
</body>
</html>
 標準之路www.aa25.cn 提示:可以先修改部分代碼後再運行

二、用圖片美化按鈕
按鈕也是網頁中經常見的元素,但預設的樣式有時候和頁面整體效果不協調,需要把它美化一下,它的樣式設定和文字框如出一轍,沒有什麼特別之處。下面以三個執行個體來說明一下:

 

.btn02 { background:#fff url(btn_bg2.gif) 0 0; height:22px; width:55px; color:#297405; border:1px solid #90be4a; font-size:12px; font-weight:bold; line-height:180%; cursor:pointer;}
.btn04 { background:url(btn_bg2.gif) 0 -24px; width:70px; height:22px; color:#9a4501; border:1px solid #dbb119; font-size:12px; line-height:160%; cursor:pointer;}
.btn07 { background:url(submit_bg.gif) 0px -8px; border:1px solid #cfab25; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#660000;}
.btn08 { background:url(submit_bg.gif) 0px -64px; border:1px solid #8b9c56; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#360;}
.btn09 { background:url(http://www.aa25.cn/upload/2010-08/14/014304_btn_bg.gif) 0 0 no-repeat; width:107px; height:37px; border:none; font-size:14px; font-weight:bold; color:#d84700; cursor:pointer;}

圖中的按鈕,前兩個為固定寬度,但寬度可以根據需要隨意調整;中間兩個為自適應寬度,根據字數多少去適應;這四個樣式都是採用一個背景圖片橫向迴圈實現,所以寬度不受限制,最後一個完全採用背景圖片,這樣寬度就得固定死了,要不會影響美觀。需要注意的是這種方式需要去掉按鈕邊框。

採用以上的按鈕有一個好處是當css樣式表沒有載入上時,將會顯示為預設按鈕樣式,這樣使用者可以清楚地知道這是個按鈕,正常載入後,會使按鈕更加美觀。它和我們第五天講的css按鈕有所不同,那裡的按鈕實際還是個連結,而這裡的是按鈕元素。註:不同瀏覽器下顯示效果略有不同。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
.btn02 { background:#fff url(/upload/2010-08/28/btn_bg2.gif) 0 0; height:22px; width:55px; color:#297405; border:1px solid #90be4a; font-size:12px; font-weight:bold; line-height:180%; cursor:pointer;}
.btn04 { background:url(/upload/2010-08/28/btn_bg2.gif) 0 -24px; width:70px; height:22px; color:#9a4501; border:1px solid #dbb119; font-size:12px; line-height:160%; cursor:pointer;}
.btn07 { background:url(/upload/2010-08/28/submit_bg.gif) 0px -8px; border:1px solid #cfab25; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#660000;}
.btn08 { background:url(/upload/2010-08/28/submit_bg.gif) 0px -64px; border:1px solid #8b9c56; height:32px; font-weight:bold; padding-top:2px; cursor:pointer; font-size:14px; color:#360;}
.btn09 { background:url(http://www.aa25.cn/upload/2010-08/14/014304_btn_bg.gif) 0 0 no-repeat; width:107px; height:37px; border:none; font-size:14px; font-weight:bold; color:#d84700; cursor:pointer;}
</style>
</head>
<body>
<p>
<input name="button" type="submit" class="btn02" id="button" value="提交" />
</p>
<p>
<input name="button2" type="submit" class="btn04" id="button2" value="提交" />
</p>
<p>
<input name="button" type="submit" class="btn07" id="button" value="提交" />
</p>
<p>
<input name="button2" type="submit" class="btn08" id="button2" value="看看我的寬度有多寬" />
</p>
<p>
<input name="button" type="submit" class="btn09" id="button" value="免費註冊" />
</p>
</body>
</html>
 標準之路www.aa25.cn 提示:可以先修改部分代碼後再運行

三、改變下拉式清單樣式
下拉式清單(菜單)是大家最頭疼的一個元素,因其對許多樣式不生效,故而在頁面中顯示很醜陋,而且在IE6下總在最上層,造成許多彈出層不能把其遮擋(可惡的IE6呀),使頁面的使用者檢驗大打折扣,所以一些設計師想出了許多辦法來改變這種情況。

IE6下對下拉式清單的背景和寬度樣式生效,其它絕大部分不生效,IE8下增加了對邊框和高度的支援。但這樣似乎離我們要求還很遠,所以不得不尋求其它的辦法了。先看下面三個圖,同一代碼分別在IE6、FF、IE8下顯示的差異吧。

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
.select { border:1px solid #f60; background:#FF9; height:30px;}
.tip { width:50px; border:1px solid #ccc; background:#fff; position:absolute; top:5px; left:70px; font-size:12px; height:100px; padding:5px;}
</style>
</head>
<body>
<p>請選擇項目:</p>
<p>
<select name="select" id="select" class="select">
<option>請選擇----------------</option>
<option>標準之路</option>
</select>
</p>
<div class="tip">看看誰能把我擋著</div>
</body>
</html>
 標準之路www.aa25.cn 提示:可以先修改部分代碼後再運行

在三個瀏覽器下顯示都不盡相同,所以最好是尋求其它的辦法或者使用預設樣式了。基中IE6下被遮擋可以把浮動層用iframe,因下拉式清單不會跑到iframe上邊。有更高美化需求的可以用div類比來代替下拉式清單,但這種方法實現起來麻煩,由於時間關係,本節不過多的介紹這種方法,感興趣的朋友可以參考http://www.aa25.cn/css_example/541.shtml,進一步的學習。

四、用label標籤提升功能使用者體驗
label標籤常常被大家忽略了,合理利用會使頁面的使用者體驗得到提升,我們可以對錶單的解說文字使用label標籤,這樣當使用者點擊文字時,游標就定位到表單上了

 

如,當滑鼠點擊姓名文字時,游標就會定位到後邊的文字框上了;點擊男女文字也會選中相應的選項;同理,複選框和文本域也是一樣的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
</style>
</head>
<body>
<p>
<label for="name">姓名:</label>
<input type="text" name="name" id="name" />
</p>
<p>性別:
<input type="radio" name="sex" id="male" value="radio" /><label for="male">男</label>
<input type="radio" name="sex" id="female" value="radio2" /><label for="female">女</label></p>
<p>愛好:
<input type="checkbox" name="music" id="music" /><label for="music">聽音樂</label>
<input type="checkbox" name="web" id="web" /><label for="web">上網</label>
<input type="checkbox" name="book" id="book" /><label for="book">看書</label></p>
<p>
<label for="content">簡曆:</label>
<textarea name="content" id="content" cols="45" rows="5"></textarea>
</p>
<p>&nbsp;</p>
<p>&nbsp; </p>
</body>
</html>
 標準之路www.aa25.cn 提示:可以先修改部分代碼後再運行

文章出處:標準之路(http://www.aa25.cn/div_css/910.shtml)

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。