当前位置: 首页 > 图文教程 > 网页制作 > HTML/XHTML教程 > select控件是如何设计的?

HTML/XHTML教程
XHTML入门学习教程:网页Head和DTD
XHTML入门学习教程:XHTML超级链接
XHTML入门学习教程:列表标签的使用
XHTML入门学习教程:文字格式与特殊字符
XHTML入门学习教程:XHTML标签
XHTML入门学习教程:XHTML常用标签
XHTML入门学习教程:什么是XHTML?
XHTML入门学习教程:简单网页制作
HTML网页的基本组成概述
表格边框的css语法
HTML表格标记教程(48):CSS修饰表格
HTML表格标记教程(46):表格的表尾标记
HTML表格标记教程(47):表格嵌套
HTML表格标记教程(45):表格的表主体标记
HTML表格标记教程(43):表头的垂直对齐属性VALIGN
HTML表格标记教程(44):表格的表首标记
HTML表格标记教程(42):表头的水平对齐属性ALIGN
HTML表格标记教程(40):表头的暗边框色属性BORDERCOLORDARK
HTML表格标记教程(39):表头的亮边框色属性BORDERCOLORLIGHT
HTML表格标记教程(38):表头的边框色属性BORDERCOLOR

HTML/XHTML教程 中的 select控件是如何设计的?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 35 ::
收藏到网摘: n/a

有几个原因促使我们使用自定义的select控件来代替原生的select控件:

  1. 在ie6下select是一个窗口级的元素,绝对定位的层会被select穿越(一般的解决方法是在层内加一个iframe来遮住select)。
  2. 如果是自定义的select控件可以有更多的功能,下拉列表下的列表项可以更丰富,可以是列表、树甚至是表格(如下图)。

先把用HTML+CSS把select控件的外观模拟出来:

这儿用到一张图片arrow.gif

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

OK,在ff3下测试通过,在ie6、ie7下有一些错位,需要加CSS hack来作小许的调整,为了代码的纯粹,在这就不展示了。

接下来试着用js实现基本功能:

通过JS替换页面内原有的select,当时我们希望这个JS是非侵入式的,只要引用了select.js这个js文件的页面,就自动把页面里原有的select控件替换接管了。

先初步地实现selct控件的替换,和基本的交互(暂不考虑接管select的onchange事件等问题)。在下面的实现方法里并没有把原有的select去掉,只是隐藏了起来,所以如果select是在表单内,表单仍然能够正常提交。

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

OK,在ff3下测试通过,在ie下存在层的定位问题,当弹出下拉列表时需要对层的z-index作调整,在这就不展示了。

如果这个select控件仅在前台作小量的应用,那么适当地添加一些对键盘,鼠标的响应,就差不多可以了。