論壇經常有人會問到用CSS如何美化Select標籤,其實但凡你看到很酷的都是用javascript來實現的。昨天試著做了一下,基本實現的初級功能。拿出來和大家一起分享一下。先可以看一下預覽效果:http://www.iwcn.net/demo/select。
【功能需求】
1、調用要方便,做好之後應該像這樣:
複製代碼 代碼如下:function loadSelect(selectobj){
//傳入一個select對象就能將他的樣式美化
}
2、不改變原有表單項,表單的頁面代碼不去破壞: 複製代碼 代碼如下:<form name="f" onsubmit="getResult();">
<fieldset>
<legend>使用者註冊</legend>
<div>
<label for="username">帳號</label>
<input type="text" id="username" name="username" />
</div>
<div>
<label for="pwd">密碼</label>
<input type="password" name="pwd" id="pwd" />
</div>
<div>
<label for="province">省份</label>
<select id="province" name="province">
<option value="10">江西</option>
<option value="11">福建</option>
<option value="12">廣東</option>
<option value="13">浙江</option>
</select>
</div>
</fieldset>
<input type="submit" value="提交" name="btnSub" />
</form>
【實現思路】
第一步:將表單中的select隱藏起來。
為什嗎?很簡單,因為這傢伙太頑固了,用css根本搞不出來你想要的。所以把它殺掉。
第二步:用指令碼找到select標籤在網頁上的絕對位置。
我們在那個位置上用DIV標籤做個假的、好看點的來當他的替身。
第三步:用指令碼把select標籤中的值讀出來。
雖然藏起來了,但它裡邊的options我們還有用呢,統統取過來。
第四步:當使用者點擊select標籤的替身,也就是div的時候。我們再用一個div浮在上一個div的下邊,這個就是options的替身了。
大致上就是這樣了,接下來我們一步一步去實現它!
【準備工作】
1、想好你要把select美化成什麼樣子,並準備好相應的圖片。我準備了兩張小圖,就是下拉式箭頭1和下拉式箭頭2,1是預設樣式,2是滑鼠移過來的樣式。
2、寫好一個普通的表單遞交頁面,比如下邊這個。注意我給select定義了基本的CSS樣式、在頭部添加了調用js檔案的代碼、在body中添加了調用函數的指令碼。 xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
用javascript類比select達到美化效果
作者部落格