chosen组件实现下拉框
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组件实现下拉框的更多相关文章
- Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)
(一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name&q ...
- 微信小程序:picker组件实现下拉框效果
一.wxml中代码 <view class="in_order_Param"> <text>状态:</text> ...
- jQuery下拉框扩展和美化插件Chosen
Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...
- 自绘制HT For Web ComboBox下拉框组件
传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HTforWeb通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让整个 ...
- ComboTree( 树型下拉框) 组件
本节课重点了解EasyUI中Tree(树)组件的使用方法, 这个组件依赖于Combo(下拉框)和 Tree(树)组件.一. 加载方式//class 加载方式<select id="cc ...
- Combo( 自定义下拉框) 组件
本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方法,这个组件依赖于ValidateBox(验证框)组件 一. 加载方式自定义下拉框不能通过标签的方式进行创建.<input ...
- 从后台绑定数据到ligerui 的comboBox下拉框组件
这次来记录一下ligerUI的comboBox下拉框组件,ligerUI的API里也有相关描写叙述,上面都是前台写死数据,然后显示在组件中,我这次要说的是将后台的数据绑定到下拉框组件中,废话不多说. ...
- 由于抽签HT For Web ComboBox下拉框组件
传统HTML5的下拉框select仅仅能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅可以实现传统HTML5下拉框效果,并且可以在文本框和下拉列表中加入自己定义的小图标, ...
- [jQueryUI] – Chosen:select下拉选择框美化插件及问题
Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...
随机推荐
- jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)
上传图片本身是个基本的小功能,但是到了移动端就不那么简单了,相信找到这篇文章的你一定有深深的同感. 本文实例是:在(移动端)页面中点击图片,然后选择文件,然后保存.使用Asp.net 难点一:后台获取 ...
- 第3.2 使用案例1:股票期货stock portfolio 21050917
As mentioned earlier in the chapter, the first use case revolves around a stock portfolio use case ...
- unity5.0材质添加问题
将Material拖放到Cube的Inspector视图中 材质添加图片背景,unity自带了很多种材质类型点击Shader下拉按钮可以更换材质类型为Diffuse camera preview: G ...
- GZipStream 压缩和解压
GZipSteam: GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法 类 GZipStream有两种模式:CompressionMode.Compress和CompressionMode ...
- CSS3 Background-size
详情见链接 http://www.w3cplus.com/content/css3-background-size/ 例子:http://www.topcss.org/demo/background- ...
- Android数据存储-读取内部存储空间数据
内部存储空间的默认位置 data/data/应用名称 写数据,获取FileOutPutStream的方式 1.直接写死路径的方式 FileOutputStream fos = new FileOutp ...
- fatal error: Call to undefined function mysqli_connect()
在搭建PHP5.6+APACHE2.4+MYSQL5的平台时,测试是否成功连接mysql, 测试程序index.php <?php phpinfo() ?> 没有出现mysql的信息 所以 ...
- PHP学习心得(1)——实用脚本
<?php 来表示 PHP 标识符的起始,然后放入 PHP 语句并通过加上一个终止标识符 ?> 来退出 PHP 模式 调用函数phpinfo(),将会看到很多自己系统的信息,以及预定义变量 ...
- 【RobotFramework自动化测试】数据库值验证
${sqlCount} Row Count ${sqlStr} #注释:Row Count 将SQL查询结果的行数返回给前面的参数: @{rs} query ${sqlS ...
- 微信小程序开发技巧及填坑记录
以下是自己在开发过程中遇到的坑和小技巧,记录以下: 1.出现了 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add pag ...