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,增加了自动筛选的功能.它可对列表进行分组, ...
随机推荐
- WC项目要求
#include "stdio.h" #include "string.h" #include "stdlib.h" int charcal ...
- MVC 实体字段自定义验证
[Remote("ActionName", "ControllerName", AdditionalFields = "ID", Error ...
- VM虚拟主机怎么设置网络
VMware是很受欢迎的虚拟机,在我们平时的工作中需要经常用到,此文简单总结了平时使用的三种网络配置方式,具体的原理没有去深究.我估计咱也研究不懂! 虚拟主机安装很简单,网上教程有很多,但是有很多新手 ...
- Mysqli封装
<?php //headerheader('content-type:text/html;charset=UTF-8'); class DB { //定义属性 private $ho ...
- Java并发编程学习笔记(三)——对象的组合
重要概念: 1.在设计线程安全类的过程中,需要包含以下三个基本要素: (1)找出构成对象状态的所有变量. (2)找出约束状态变量的不变性条件. (3)建立对象状态的并发访问管理策略. 2.
- Rails学习笔记一
安装篇: 下载railsintalls 这里我下载的是rubyinstaller-1.9.3-p448 安装后,安装SQLite3数据库 下载sqlite3.def sqlite3.dll sqlit ...
- NOIP 考前 Tarjan复习
POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少 ...
- ORA-20000 ORU-10027 buffer overflow limit of 2000 bytes
这是在pl/sql中执行存储过程报的错,原因是serveroutput限制存储, 解决方案:set serveroutput on size 10000000;
- RubyGems 镜像
Gem Source 命令: gem sources -a http://gems.ruby-china.org gem sources -l
- 随机生成UUID(GUID)的方法
- (NSString *)UUID { CFUUIDRef uuid_ref = CFUUIDCreate(NULL); CFStringRef uuid_string_ref= CFUUIDCre ...