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,增加了自动筛选的功能.它可对列表进行分组, ...
随机推荐
- Ubuntu的多文件编译以及c语言的数组、函数
闲言少叙,直接切入主题. 一.Linux下的多文件编译(Ubuntu系统). 对于小程序来说,往往一个.c文件就足够了,里面包含了各种主函数和功能函数,以及函数的声明等等.但是这样的弊端主要有两点,一 ...
- hypermesh2flac3d
hypermesh2ansys2flac3d 目的: 将hypermesh中划分的网格输出到flac3d中.过程是hypermesh12.0-ansys13.0-flac3d3.0. 视频教程详见:h ...
- linux 两个文件合并
可以使用cat命令,有两种实现的方式,一种将两个文件合并的到一个新的文件,另一种将一个文件追加到另一个文件的末尾. 方法一:使用cat命令从文件中读入两个文件,然后将重定向到一个新的文件.这种方法可以 ...
- SQLServer - 约束
一.约束的分类 在SQLServer中,有3种不同类型的约束. 1.实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键. 2.域约束 域约束是关于列的,对于所有行,某一列有 ...
- The guard was taken to hospital in a critical condition.
The Prince George's County Fire Department said the guard was taken to hospital in a critical condit ...
- nginx+tomcat+dubbo单机部署多台dubbo应用
前面的博客已经介绍如何使用nginx+tomcat,今天做的是如何在单台服务器上如何部署多台dubbo 应用的集群. 由于在项目中遇到了这个问题,今天就把它记录下来. 1.
- 数据存储之CoreData
#import "ViewController.h" #import <CoreData/CoreData.h> #import "Person.h" ...
- MySQL数据库9 - 日期与时间函数
一 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为数 ...
- python基础之内置函数
该博客内容参考http://www.cnblogs.com/wupeiqi/articles/4943406.html 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经 ...
- 【笔记】Fragment使用
1.静态加载 1.1 首先定义每一个Fragment的布局文件. 1.2 创建每个fragment类,需要继承Fragment.并使用onCreateView()的inflater.inflate() ...