chosen组件用于增强原生的select控件,使之有更好的用户体验。官方demo https://harvesthq.github.io/chosen/

目前项目中碰到的使用,比如一个页面中有两个不同样式的下拉框:

1、首先在js文件夹中建一个名为chosen的文件夹,放入这样几个文件:

2、在html页面中引入chosen的css和js文件:

3、在html中写这两个下拉框:

 1 <div class="myselect1 mt10 ml10">
 2     <select id="select1" class="myselect">
 3         <option value="1">中国</option>
 4         <option value="2">美国</option>
 5         <option value="3">韩国</option>
 6     </select>
 7     <span>下拉框1</span>
 8 </div>
 9 <div class="myselect2 mt10 ml10">
10     <select id="select2" class="myselect">
11         <option value="1">北京</option>
12         <option value="2">华盛顿</option>
13         <option value="3">首尔</option>
14     </select>
15     <span>下拉框2</span>
16 </div>

页面效果为普通的select样式:

4、在js中初始化这两个下拉框:

 1 (function(win, $) {
 2
 3      // 初始化下拉框
 4     $("select").chosen({
 5         disable_search: true
 6     }).change(function(event, opt) {
 7         // 获取选中的值
 8         var val = $(this).find("option:selected").html();
 9         console.log(val);
10     });
11 }(this, jQuery));

效果就变成了官方预设的下拉效果(当文字过长时会自动显示部分省略号):

5、给这两个下拉框写样式:

/*两个框的宽度是通过这样直接指定的方式设定的*/
.myselect1 select {width: 100px;
}
.myselect2 select {width: 150px;
}/*#region 重写下拉框 */
/*两个下拉框的相同样式直接重写*//*整个框外观上的样式*/
.chosen-container
{margin-right: 100px;float: left;text-align: center;*padding: 5px 0;
}.chosen-container .chosen-results
{padding: 0;margin-right: 0;
}
/*下拉框的那个框的样式*/
.chosen-container-single .chosen-single
{background: #f9f9f9;border: 0;border-radius: 0;box-shadow: none;  /*后来的测试中发现,这个height是包括边框的高度*/   line-height: 36px;height: 36px;
}.chosen-container-single .chosen-single span
{margin-right: 26px;letter-spacing: 2px;margin-left: 4px;
}
/*下拉项*/
.chosen-container .chosen-results li
{letter-spacing: 4px;
}.chosen-container-single .chosen-single div
{padding: 0;width: 21px;
}
/*图标*/
.chosen-container-single .chosen-single div b
{background: url(../images/bg.png) no-repeat left 15px;
}.chosen-container-active.chosen-with-drop .chosen-single div b
{background: url(../images/bg.png) no-repeat left 15px;
}
/*当下拉项显示出来时下拉框的那个框的样式*/
.chosen-container-active.chosen-with-drop .chosen-single
{background: #f9f9f9;box-shadow: none;border: 0;border-radius: 0;
}.chosen-container-single .chosen-drop
{border: 1px solid #f9f9f9;background-color: #f9f9f9;box-sizing: border-box;
}.chosen-container .chosen-results li.highlighted
{background-color: #397ddb;background-image: none;
}
/*给其中一个框分别指定个性的样式,另一个框的样式设定方式同理,使用父选择器进行限制*/
.myselect1 .chosen-container
{text-align: left;
}
.myselect1 .chosen-container-single .chosen-single {background-color: #f00;color: #fff;font-size: 20px;
}
.myselect1 .chosen-container .chosen-results li
{letter-spacing: 0;padding-left: 12px;
}
.myselect1 .chosen-container-active.chosen-with-drop .chosen-single
{background: #0f0;border: 1px solid #f00;
}

(当下拉框需要浮动时,所在的div层不能写overflow:hidden;这样点击框后框会消失得几乎不见,所以要在所在的div清除浮动):

效果图:

             

经测试,以上效果是在chrome,ff,IE8、9、10下的显示,在IE7中显示达不到效果:

至少整个外观样式不合格(下拉框和右边文字的距离没拉开),所以可以在css中直接针对IE7写hack样式:

然后距离至少是拉开了的:

====================================分割线 2016.10.10=========================================

转载于:https://www.cnblogs.com/junsoo-jun/p/5890892.html

chosen组件实现下拉框相关推荐

  1. 【JAVA】-- GUI用户界面设计(面板组件、文本组件、标签组件、按钮组件、下拉框组件)

    Swing中的组件:面板组件.文本组件.标签组件.按钮组件.下拉框组件. 一.面板组件 Swing组件中除了JFrame和JDialog这样的顶级容器,还提供了一些面板组件,面板组件不能单独存在,只能 ...

  2. Vue自定义组件——自定义下拉框

    组件自定义 props props传入数据. $emit this.$emit("input",param);调用组件外部的监听. v-model 自定义组件要使用v-model实 ...

  3. 通过css样式禁用NG-ZORRO中Calendar日历组件头部下拉框的选择事件

    通过css样式去掉鼠标点击事件及点击呈现的样式: @mixin clickDisable {pointer-events: none;cursor: default;//opacity: 0.6; } ...

  4. 微信小程序 简单易用 下拉框组件

    由于公司项目需要,自己开发了一个微信小组件--Miche_mini_select下拉框 本下拉框特点: 1.保证下拉框在最上层,不会被其他控件所遮挡 2.引用方便,直接引用组件即可,与页面耦合性低 3 ...

  5. jquery可以勾选的下拉框_jquery.chosen下拉框多选插件使用详解_蓝戒的博客

    Chosen 是一个支持jquery的selec t下拉框美化插件,它能让丑陋的.很长的selec t选择框变的更好看.更方便.不仅如此,它更扩展了selec t,  增加了自动筛选的功能.它可对列表 ...

  6. chosen.jquery.js 有搜索功能、多选功能的下拉框插件

    chosen.jquery.js 有搜索功能.多选功能的下拉框插件 官方源码:  https://github.com/harvesthq/chosen 该源码中的样例index.html有该插件的详 ...

  7. 如何使用ember下拉框组件??

    2019独角兽企业重金招聘Python工程师标准>>> 文章来源:ember teach This addon enables legacy view support without ...

  8. 自绘制HT For Web ComboBox下拉框组件

    传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让 ...

  9. 微信小程序下拉框插件_微信小程序下拉框组件使用方法详解

    本文实例为大家分享了微信小程序下拉框组件的使用方法,供大家参考,具体内容如下 适用场景 1.省市三级联动 2.出生日期选择 3.性别选择 4.一般性的下拉选择等 一.省市三级联动使用 注意mode = ...

最新文章

  1. 即插即用新卷积:提升CNN性能、速度翻倍
  2. jmeter tps指标在哪里看_JMeter功能不够用?看这里
  3. Scala学习之类和属性篇(一):定义类的主构造方法
  4. V-rep学习笔记:vrep中的实用工具
  5. 七十五、Python | Leetcode哈希表系列
  6. 经典C语言程序100例之八六
  7. java 生成log4j_Java log4j配置每天生成一个日志文件 - 永恒ぃ☆心 的日志 - 网易博客...
  8. .NET设计模式(10):装饰模式(Decorator Pattern)
  9. 黑马程序员_java基础笔记(03)...面向对象
  10. 中位数和顺序统计,以线性期望时间做选择
  11. 汉诺塔C语言实现(纯代码)
  12. java万年历程序代码_JAVA万年历程序代码
  13. 计算机名校远程在职硕士信息汇总Online Master
  14. c语言求成绩标准差,C语言中求和、计算平均值、方差和标准差的实例
  15. P1967 货车运输( 最大生成树+LCA or Kruskal重构树)
  16. 【开箱即用】VMware Win7虚拟机下载
  17. CDQZ多校集训题目--盛夏
  18. 桌面支持--PLM软件必须右键用管理员账号打开
  19. 自行车租借管理系统c语言,校园自行车管理系统.doc
  20. 关于《Windows传统蒙古文系统》新探索系列篇(二)

热门文章

  1. 解决Sqlite中的中文路径问题
  2. .NET中的文件IO操作实例
  3. Windows和Linux双启动,并用在Windows下配置CoLinux启动
  4. apache压力测试
  5. 7.7-9 chage、chpasswd、su
  6. eplan单线原理图多线原理图_【原创分享】西门子PLC电路图高效设计——基于EPLAN与TIA Selection...
  7. ios html gif 显示,iOS中gif图的显示方法示例
  8. linux网络存储服务器选题意义,基于嵌入式Linux的网络存储的实现和研究
  9. Cow Toll Paths(floyd变形)
  10. python使用作为转义字符_当需要在字符串中使用特殊字符时, Python使用()作为转义字符。...