论坛首页 Web前端技术论坛

最完美的select下拉框美化(更新了访问地址)

浏览 67564 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (15)
作者 正文
   发表时间:2010-12-24   最后修改:2011-10-18

 

 

很多人为select的诸多不完善而头痛,如无法自定义样式、IE6中无法被浮动层遮住等等。下面介绍一款堪称最完美的下拉框组件。感兴趣的可以从最后的链接地址下载代码研究与交流。

 

特点1:美化的并且可自定义的外观

下拉框使用JS进行渲染。当页面引入了脚本和CSS后,页面中的下拉框都会变成如下外观:


该外观是由CSS和图片控制。通过修改CSS可以很方便地实现更改外观。

下拉框不存在IE6中无法被浮动层遮住等问题。

 

特点2:使用简单

下拉框代码写法与原来的写法一样,都是如下代码:

<select>

    <option value="">请选择功能</option>

    <option value="1">新增图片</option>

    <option value="2">维护图片</option>

    <option value="3">新增新闻</option>

 </select>

 

也可以动态创建UU人下拉框。

 

 

特点3:宽度处理

你是否遇到以下两种情况:

1)不设置下拉框宽度,那么下拉框宽度默认为最宽的选项的宽度。当其选项过长时轻则会导致整个表单不整齐,重则会撑坏页面布局;

2)设置下拉框宽度,但是由于下拉框的选项宽度有可能会很长,可能会导致内容显示不完全。

 

下拉框对于宽度的处理方式是:默认会有一个宽度,即使选项里面有很长的文字。效果如下:


这样就保证了表单元素宽度一致又不影响内容。放在表单中的整体效果如下:


 

如果希望下拉框的宽度自适应最长选项,为其设置一个参数即可,效果如下:


 

另外还可以通过style强制一个宽度。

 

特点4:支持分组

下拉框支持分组,代码与普通select分组代码一样。如

<select>

    <option>请选择权限</option>

    <optgroup label="首页信息发布">

       <option value="新增图片">新增图片</option>

       <option value="维护图片">维护图片</option>

       <option value="新增新闻">新增新闻</option>

    </optgroup>

    <optgroup label="人员维护">

        <option value="新增用户">新增用户</option>

         <option value="用户列表">用户列表</option>

    </optgroup>

</select>

效果如下:


 

特点5:下拉列表展开的方向智能化

原始的下拉框如果在网页中的位置比较偏下,向下展开肯能会导致内容显示不全。

下拉框在这种情况会进行智能判断从而向上展开。效果如下:


当下拉列表选项过多,向上也无法展示完全时,下拉框会判断一下向上和向下哪里空间大,就向哪里展开,并出现滚动条。效果如下:


 

特点6:下拉框可编辑

为下拉框代码添加一个属性,就把它变成了一个可编辑的下拉框,效果如下:


 

特点7:集成了ajax联动功能

通过设置可以很简单地实现下拉框联动功能。可支持的联动级数为无限级!

例如如下代码就创建了一个二级联动的下拉框:

所学专业:

<select id="sel01" childId="sel02" childDataPath=" http://localhost/kj/trainplan.do?method=" >

    <option value="">请选择专业</option>

    <option value="bj1">专业1</option>

<option value="bj2">专业2</option>

</select> 

 所属班级:

 <select id="sel02">

    <option value="0">请先选择专业</option>

 </select>  

代码中的childId指定要联动的下拉框的IDchildDataPath指定二级下拉框数据来源,与一级下拉框的value关联来获取数据。

效果如下:


 

 

特点8:自定义下拉列表的列数

当下拉框项目过多时,可以通过添加一个属性来指定列数,并可自定义列宽。效果如下:


 

特点9:完美的浏览器兼容性

无论是IE6IE7IE8还是FireFoxChromeSafira,甚至在Linux下都保持功能与外观的一致性。

 

 

注意:下载地址已改变。下面的是最新的下载地址:


点击这里下载示例

 

 

  • 大小: 11.8 KB
  • 大小: 11.3 KB
  • 大小: 36.4 KB
  • 大小: 12.8 KB
  • 大小: 10.3 KB
  • 大小: 10.6 KB
  • 大小: 17.5 KB
  • 大小: 3.8 KB
  • 大小: 4.3 KB
  • 大小: 26.9 KB
   发表时间:2010-12-24  
这是个插件吗?
0 请登录后投票
   发表时间:2010-12-25  
在Chromium6.0.409.0 (47633)下好像看不到效果.
0 请登录后投票
   发表时间:2010-12-25  
广告贴,给的demo网站都无法访问。
0 请登录后投票
   发表时间:2010-12-25   最后修改:2010-12-25
nplw668 写道
广告贴,给的demo网站都无法访问。

 

不好意思,是空间有问题,有时候无法正常访问。你可以试试多刷新几次页面或者换个时间访问。我最近正准备换个空间。

0 请登录后投票
   发表时间:2010-12-25   最后修改:2010-12-25
整体还可以,部分浏览器存在bug
很像是广告贴啊,jQuery插件很多,估计没人花钱买的
0 请登录后投票
   发表时间:2010-12-25  
很像Ext的ComboBox啊,还没人家的好。
0 请登录后投票
   发表时间:2010-12-26  
我用的ie8 上面看到的效果不是非常好。
对得不是很整齐。
0 请登录后投票
   发表时间:2010-12-26  
语法很旬jQuery啊。
0 请登录后投票
   发表时间:2010-12-26  
zyongking 写道
我用的ie8 上面看到的效果不是非常好。
对得不是很整齐。

 

我做的时候ie6-ie8都确保兼容,可能我用的ie8与你的版本不同的原故。

看来还需要进一步完善。

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics