Css:制作一個更漂亮一些的多選列表框_Web標(biāo)準(zhǔn)教程
我認(rèn)為多選列表具有完美的功能——只需按下Ctrl鍵,同時點擊鼠標(biāo)從列表中選擇多個項目。以下是一個典型的多選列表框:
選出你最喜愛的快餐:
上面那個列表框的代碼如下:
以下為引用的內(nèi)容:
<form method="get" action="">
<b>Check your favorite fast food:</b><br/>
<SELECT MULTIPLE SIZE=5 name="favorites">
<OPTION VALUE="McDonalds">McDonald's</option>
<OPTION VALUE="BurgerKing">Burger King</option>
<OPTION VALUE="Wendys">Wendy's</option>
<OPTION VALUE="JackInTheBox">Jack in the Box</option>
<OPTION VALUE="KFC">KFC</option>
<OPTION VALUE="TacoBell">Taco Bell</option>
</SELECT>
<br/><input type="submit" value="Choose">
</form>
事實上,即使你在頁面中添加了用法說明,仍然有用戶不知道如何使用多選列表框。另外,給每個項目增加額外的標(biāo)題確實會有幫助,但用一個普通的多選列表框能否達(dá)到那個目的,我還不能確定。
不過,我確實清楚知道,用一些CSS和一小段JavaScript,你就能生成一個更漂亮一點的多選列表框,并且還可以建立一個等同于普通多選列表框的URL。那樣,你就不用修改處理列表框的后端代碼——而只需要美化前端即可。
你首先從CSS開始,建立一個新多選列表框在其中滾動的小區(qū)域。我們還可以建立懸浮效果,當(dāng)鼠標(biāo)移動到一個項目上時,背景色就會改變,以突出當(dāng)前選擇。
以下為引用的內(nèi)容:
<style>
.checklist {
border: 1px solid #ccc;
list-style: none;
height: 10em;
overflow: auto;
width: 20em;
}.checklist, .checklist li { margin: 0; padding: 0; }
.checklist label {
display: block;
padding: 0 0.2em 0 25px;
text-indent: -25px;
}
.checklist label:hover { background: #777; color: #fff; }
* html .checklist label { height: 1%; }
</style>
至于JavaScript,你基本上只希望建立一個等同于常規(guī)多選列表框的URL。以上面的多選列表框為例,其查詢字符串如下:
?favorites=Wendys&favorites=KFC
那就是我們希望仿效的地方。這段腳本只是利用外觀(form)對象,循環(huán)所有檢驗欄(checkbox)的thru looking,并為那些選中的項目建立URL。很明顯,這段腳本只應(yīng)用于所有檢驗欄元素都位于新多選列表框的情況。
以下為引用的內(nèi)容:
<script type="text/javascript">
function submitForm(f) {
var cb = f.getElementsByTagName("input");
var favorites = "favorites=";
var isFirst = true;for (var i = 0; i < cb.length; i++) {
var curr = cb[i];
if (curr.type == "checkbox") {
// window.alert(curr.name + ": " + curr.type);
if (curr.checked) {
if (isFirst) {
favorites = "favorites=" + curr.name;
isFirst = false;
} else {
favorites = favorites + "&favorites=" + curr.name;
}
}
}
}
window.location = f.action + "?" + favorites;
}
</script>
最后,經(jīng)過簡單改進(jìn)的新多選列表框的代碼如下:
以下為引用的內(nèi)容:
<form method="get" action="">
<b>Check your favorite fast food:</b><br/>
<ul class="checklist">
<li><label><input type="checkbox" name="McDonalds" /><b>McDonalds</b><br/>I'm lovin' it</label></li>
<li><label><input type="checkbox" name="BurgerKing" /><b>Burger King</b><br/>Have it your way</label></li>
<li><label><input type="checkbox" name="Wendys" /><b>Wendy's</b><br/>Always fresh, never frozen</label></li>
<li><label><input type="checkbox" name="JackInTheBox" /><b>Jack in the Box</b><br/>If it doesn't get all over the place, it doesn't belong in your face</label></li>
<li><label><input type="checkbox" name="KFC" /><b>KFC</b><br/>Finger lickin' good</label></li>
<li><label><input type="checkbox" name="TacoBell" /><b>Taco Bell</b><br/>Think outisde the bun</label></li>
</ul>
<input type="button" value="Choose" onclick="submitForm(this.form);">
</form>
不幸的是,TechRepublic網(wǎng)站大量應(yīng)用CSS,因此當(dāng)我在博客中試用這段樣本代碼時,它顯得非常難看。我可不希望為避免沖突而把代碼修改得一團(tuán)糟——這里我只是努力想說明其中的基本理論。
因此,我在自己的個人網(wǎng)站上用這段代碼發(fā)布了一個簡單的文件,你可以通過它了解代碼的用法。
- Web標(biāo)準(zhǔn):需要正確的使用H1~ H6標(biāo)簽
- 五個WEB標(biāo)準(zhǔn)中必須注意的地方
- 做到結(jié)構(gòu)(XHTML),表現(xiàn)(CSS),行為(JavaScript)的分離
- CSS標(biāo)準(zhǔn):HTML標(biāo)簽元素的關(guān)閉
- Web標(biāo)準(zhǔn)之路 勿使用W3C廢棄的元素
- CSS布局 聲明文檔類型描述(DTD)
- DIV CSS\讓搜索引擎蜘蛛不再累
- 用XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)頁
- XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)站
- DIV+CSS對SEO的幫助
- 淺析什么是Web標(biāo)準(zhǔn) 及其前景
- CSSer新手寄語:開始標(biāo)準(zhǔn)之路
Web標(biāo)準(zhǔn)教程Rss訂閱Div+Css教程搜索
Web標(biāo)準(zhǔn)教程推薦
- DreamweaverCS3體驗2
- WEB標(biāo)準(zhǔn)教程第8天:CSS布局入門
- Apple、Opera、Mozilla支持HTML5 XHTML被顛覆?
- 從douban.com豆瓣網(wǎng)站設(shè)計談網(wǎng)站重構(gòu)
- CSSer基礎(chǔ)知識:World Wide Web Consortium
- web標(biāo)準(zhǔn)化學(xué)習(xí)指南:如何學(xué)習(xí)網(wǎng)頁標(biāo)準(zhǔn)
- WEB標(biāo)準(zhǔn)中細(xì)線表格的實現(xiàn)方法
- CSS標(biāo)準(zhǔn)系列數(shù)據(jù)層與樣式層分離模式的管理
- WEB標(biāo)準(zhǔn)教程第9天:第一個CSS布局實例
- CSS標(biāo)準(zhǔn)系列用CSS制作“鼠標(biāo)經(jīng)過圖像”
- 相關(guān)鏈接:
- 教程說明:
Web標(biāo)準(zhǔn)教程-Css:制作一個更漂亮一些的多選列表框
。