模拟select标签

大家都知道现在select的右边下拉样式通过纯粹css是改变不了的,,但有时我们作为一个前端人员需要做到与UI设计100%相像,就只有自己模拟他了。下面就是我个人常用的模拟select下拉框的代码。

CSS部分:

body,div,span,ul,li{margin: 0;padding: 0;}
.myselect{width: 250px;height: 35px;border: 1px solid #dddddd;margin-left: 10px;}
.show_opt{width: 200px;height: 35px;float: left;line-height: 35px;position:relative}
.b_select{width: 48px;height: 35px;
    outline: none;float: left;background: url("../images/b_sec.png") no-repeat right;}//()
.moren{display: inline-block;width: 200px;}
.s_ul{width: 250px;height: auto;border: 1px solid #dddddd;
    position: absolute;top: 35px;left: -1px;display: none}
.s_ul li{width: 250px;height: 25px;line-height: 25px;border-bottom:1px solid #dddddd;list-style: none;}
#lastli{border-bottom: 0px;}

HTML部分:
<div class="myselect">
    <div class="show_opt">
        <span class="moren dianji"></span>
        <ul class="s_ul">
            <li>2222</li>
            <li>3333</li>
            <li>4444</li>
            <li>2222</li>
            <li>3333</li>
            <li id="lastli">4444</li>
        </ul>
    </div>
    <div class="b_select dianji"></div>
</div>

JS部分:(我引用了jquery-1.8.3.js)

$(".moren").html( $(".s_ul").children().first().html())/*默认显示第一个li的内容*/
var flag=true;/*控制隐藏不隐藏*/
$(".dianji").on("click",function(){
    if(flag==true){
        $(".s_ul").css({display:"block"})
        $(".s_ul").children().first().css({backgroundColor:"#0085d0"});
        flag=false;
    }else{
        $(".s_ul").css({display:"none"});
        flag=true;
    }
});
$(".s_ul li").hover(function(){
    $(this).css({backgroundColor:"#0085d0"})
},function(){
    $(this).css({backgroundColor:"white"})
});
$(".s_ul li").on("click",function(){
    $(".moren").html($(this).html());
    $(".s_ul").css({display:"none"});
    flag=true;
})

时间: 2024-08-28 23:17:25

模拟select标签的相关文章

select标签中怎样控制option的显示数量

最近做项目,需要动态加载数据显示到下拉列表中. 刚开始用select标签,由于数据较多,一次性全部加载,下拉列表会拖得很长,不忍直视(默认会显示20个). 我想控制select中的option显示的个数,例如:只显示5个,其余的通过滚动条来控制显示. 经过反复折腾,发现直接操作select标签无法达到目的,于是改换策略,用input标签和ul标签来模拟select标签. 效果: Demo下载 select标签中怎样控制option的显示数量,布布扣,bubuko.com

select标签的字体居中问题

今天编写JSP时,发现使用了<s:select>实现选择框的某一选择栏,其中的字体没有垂直居中,在网络上查找了一下关于select标签垂直居中显示内容的问题,发现不少人也遇到同样的问题,有人干脆把select称作最恶心的标签,因为几乎不能对它应用任何CSS样式.下面看看select有多恶心. <style type="text/css"> select{ height:50px; width:100px; font-size:15px; } </style

div模拟select/option解决兼容性问题及增加可拓展性

想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式,比如line-height等,还会由此导致在IE8及以下版本浏览器中的各种问题. 这个模拟思路很简单,也很清晰,我就直接上代码了 html: 第一层div是模拟select标签,第二层div是模拟option下拉列表 1 <div> 2 <div class="sim-select"></div> 3 </div> 4 <

div 模拟&lt;select&gt;事件

IE7 下,不能够自定义<select>/<option>的样式,所以为了方便起见,用div可以进行模拟 <!doctype html> <html> <meta charset="utf-8"> <title>div模拟select</title> <script type="text/javascript" src="js/jquery-1.8.3.min.js&

HTML中的&lt;select&gt;标签如何设置默认选中的选项

方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select  id =  "sel" > < option  value = "1" >1</ option > < option  value = "2"  selected = "selected" >2</ opt

mybatis 中 sql 映射文件 select 标签以及 入 resultMap 标签的应用

1.自定义某个 javabean 的封装规则: 注:可以看到,select 标签中引用了 定义好的 resultMap 的值.resultMap 标签中的 type 为javabean 类型,id 为唯一标识.id 子标签定义主键(这样定义底层会有优化.)column 属性为字段名,property 属性为字段值. 注:可以看到测试结果没有出现问题,说明代码没有错误. 2.自定义某个 javabean 的级联属性封装: a.准备工作:mysql 数据库中,在之前 tbl_employees 表的

selenium处理select标签的下拉框

有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select id="status" class="form-control valid" onchange="" name="status"> <option value=""></option&g

Html 中select标签的边框与右侧倒三角的去除

首先是边框的去除:可以设置属性border:none;或border:0px; 不过这还是有一个bug,不同浏览器会在选中select标签时,加上一个边框: 之后是右侧倒三角的去除:设置属性 appearance:none; 以下所有属性兼容当前主流浏览器:appearance:none; -moz-appearance:none; -ms-appearance:none; -o-appearance:none; -webkit-appearance:none; (不过对与IE浏览器这个属性好像

模拟select控件&amp;&amp;显示单击的坐标&amp;&amp;用户按下键盘,显示keyCode

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-