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

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

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

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

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

 <div class="myselect1 mt10 ml10">
<select id="select1" class="myselect">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">韩国</option>
</select>
<span>下拉框1</span>
</div>
<div class="myselect2 mt10 ml10">
<select id="select2" class="myselect">
<option value="1">北京</option>
<option value="2">华盛顿</option>
<option value="3">首尔</option>
</select>
<span>下拉框2</span>
</div>

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

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

 (function(win, $) {

      // 初始化下拉框
$("select").chosen({
disable_search: true
}).change(function(event, opt) {
// 获取选中的值
var val = $(this).find("option:selected").html();
console.log(val);
});
}(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:;
margin-right:;
}
/*下拉框的那个框的样式*/
.chosen-container-single .chosen-single
{
background: #f9f9f9;
border:;
border-radius:;
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:;
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:;
border-radius:;
} .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:;
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=========================================

chosen组件实现下拉框的更多相关文章

  1. Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)

    (一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name&q ...

  2. 微信小程序:picker组件实现下拉框效果

    一.wxml中代码 <view class="in_order_Param">             <text>状态:</text>     ...

  3. jQuery下拉框扩展和美化插件Chosen

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

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

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

  5. ComboTree( 树型下拉框) 组件

    本节课重点了解EasyUI中Tree(树)组件的使用方法, 这个组件依赖于Combo(下拉框)和 Tree(树)组件.一. 加载方式//class 加载方式<select id="cc ...

  6. Combo( 自定义下拉框) 组件

    本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方法,这个组件依赖于ValidateBox(验证框)组件 一. 加载方式自定义下拉框不能通过标签的方式进行创建.<input ...

  7. 从后台绑定数据到ligerui 的comboBox下拉框组件

    这次来记录一下ligerUI的comboBox下拉框组件,ligerUI的API里也有相关描写叙述,上面都是前台写死数据,然后显示在组件中,我这次要说的是将后台的数据绑定到下拉框组件中,废话不多说. ...

  8. 由于抽签HT For Web ComboBox下拉框组件

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

  9. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

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

随机推荐

  1. SpellTime

    如果你的应用程序允许用户输入文本,或者它结合了任何基于文本的处理,那么我们有一款你一直寻找的产品.Spell Time 允许你把个拼写检查器整合到你的产品中.该产品携带了完整的源码.Spell Tim ...

  2. reinstall ubuntu

    flickering mouse issue http://askubuntu.com/questions/310341/do-graphics-drivers-for-intel-hd-4600-e ...

  3. Learning in Two-Player Matrix Games

    3.2 Nash Equilibria in Two-Player Matrix Games For a two-player matrix game, we can set up a matrix ...

  4. Kindle使用的一些方法

    最大的好处就是方便,买书便宜,到手我就买了六部书,十块钱不到,以纸书的价格一本都买不到,能够买一些一直想读一下,但又担心读不下去的书.而且买了之后完全不用担心书柜收纳不下了.另外很轻便,放在包里上下班 ...

  5. SparkMLlib之 logistic regression源码分析

    最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...

  6. css:writing-mode属性

    writing-mode属性 实现文字垂直排版 下面是css3语法: /* 关键字值 */ writing-mode: horizontal-tb; /* 默认值 */ writing-mode: v ...

  7. Unity Ugui射线坐标转换总结

    世界空间中的点坐标转换到屏幕坐标: screenPos = RectTransformUtility.WorldToScreenPoint(cam, worldPos.transform.positi ...

  8. PAT题库-1064. Complete Binary Search Tree (30)

    1064. Complete Binary Search Tree (30) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...

  9. pyqt5

    使用python爬虫需要使用webkit执行javascript,查找资料可使用pyqt5,在此记录下安装步骤 windows 安装pyqt5 操作webkit 可用版本 1. 下载python 3. ...

  10. BZOJ3669 (动态树)

    Problem 魔法森林 (NOI2014) 题目大意 给n个点,m条边的无向图,每条边有两个权值a,b. 求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小.输出最小值即可 ...