最近做项目,要求修改select下拉框的默认三角样式,因为它在不同浏览器的样式不同且有点丑,找找网上也没什么详细修改方法,我就总结一下自己的吧。

目标是做成下图效果:

图一:将默认小三角换成红圈的三角图片

图二:点击三角图片,同样实现下拉框选择 

1.HTML

 <div class="withArrow">
<label for="">类型</label>
<span class="testArrow ">
<span class="defaultVaule">所有分支机构</span>
<select name="depts">
<option value="0">所有分支机构</option>
<option value="1">特定部门</option>
</select>
</span>
</div>

结合html和css,大概是下图的结构:

  最外层div(withArrow)包裹一个label和select,在select外包裹一层span(testArrow),设置testArrow的背景为你想要的三角图片,在select里定位一个span (defaultValue) 放点击选择的option的值。ok~

 

二、css ( 直接拷贝自项目,有些样式很多余)

  1.withArrow

.withArrow{
font-size:; /*清除label和input之间的间距*/
  position: relative; }

  2.testArrow

 .withArrow .testArrow{
position: relative;
display: inline-block;
vertical-align: middle;
width: 230px;
height: 26px;
right:;
top:;
box-sizing: border-box;
background: url(../images/u1798.png) no-repeat 98% center; /*背景三角图片*/
border: 1px solid rgba(225, 225, 225); }

  3. label

 .withArrow label {
display: inline-block;
width: 124px;
vertical-align: middle;
font-size: 14px;
color: #797979;
}

  4.select

.withArrow .testArrow select{
appearance:none;
-webkit-appearance: none; /*去除chrome浏览器的默认下拉图片*/
    -moz-appearance: none; /*去除Firefox浏览器的默认下拉图片*/
}
 .withArrow .testArrow>select{
width: 100%;
height: 26px;
position: absolute;
top:;
left:;
opacity:; /*把select透明化*/
}

  5.defaultValue

.withArrow .defaultVaule{
position: absolute;
left:;
top:;
font-size: 14px;
padding-left: 5px;
height:26px;
line-height: 26px;
}

三、js

  结合html和css,此时点击背景三角图片时,select下拉列表已经可以出现!革命完成一大半!

   但是点击选择option后,输入框还是空白?

   因为select设置了透明度为0,有值选中但是看不到,所以需要把选中值赋给定位在select里的span标签存放)。

   所以利用事件委托原理,给testArrow绑定click事件。

  (下面的写法需引入 jquery )

$('.testArrow').click(function(e){
  if(e.target.tagName.toLowerCase()=='select'){
    var selectValue= $(e.target).find('option:selected').text();

    $(e.target).prev().text(selectValue);
  }
})

写这个真累~ O了 ~ 下班啦哈哈

将select的默认小三角替换成别的图片,且实现点击图片出现下拉框选择option的更多相关文章

  1. select下拉框选择触发事件

    我一直以来都认为,select 下拉框选择对选项 options 使用 onclick 注册事件即可,如下: <select> <option value="0" ...

  2. 如何把select默认的小三角替换成自己的图片

    不同的浏览器默认的select的选项图标是不同的,例如: 在chrome中,是这样的: 未点击时    点击时  在Firefox中是这样的: 未点击时  点击时   在IE9中是这样的: 未点击时  ...

  3. 微信小程序手动实现select下拉框选择

    在小程序中没有像h5中的下拉 标签的 picker又满足部了,那就自己动手写 <view class='list-msg'> <view class='list-msg1'> ...

  4. 点击select下拉框获取option的属性值

    select下拉框作为前端开发者应该是经常使用的,最近在项目中遇到这样的情况,点击下拉框选项,需要获取所点击的option的属性值,当时想很简单啊,给option加一个点击事件不就行了,然后就加了一下 ...

  5. selenium自动化实例: 多层框架中关于iframe的定位,以及select下拉框选择

    对于一个自动化的初学者来说会很常见的遇到元素明明存在却始终定位不到, 从而导致脚本报错,当然定位不到元素的原因很多, 其中一种就是多层框架iframe导致的 下方截图示意: 下方为写脚本时候的示例并其 ...

  6. 关于select下拉框选择触发事件

    最开始使用onclick设置下拉框触发事件发现会有一些问题: <select> <option value="0" onclick="func0()&q ...

  7. mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)

    当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...

  8. select下拉框选择字体大小

    效果: 结合Bootstrap.jQuery和ES6字符串模板与箭头函数使用JavaScript DOM操作动态添加option,随着option:selected选中的字号而改变相应的字体大小 代码 ...

  9. 如何获取select下拉框中option选中的文本值

    $(select的id或者class).change(function(){ $(this).find("option:selected").text() }) 源文:https: ...

随机推荐

  1. CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里

    这两天在GitHub上传了一个自定义ViewPager:CoolViewPager,具有以下功能特征: 支持水平及垂直方向循环滚动 支持自动滚动 支持自动滚动方向.滚动时间.间隔时间的设置 支持调用n ...

  2. Excel 操作总结

    1.excel 表格中换行:Alt+Enter; 2.Excel2003以上版本设置下拉菜单     DATA->Data Validation ->Data Validation -&g ...

  3. Ddos 反射性防护 simple

    加固NTP服务: 1.通过Iptables配置只允许信任的IP,访问本机的UDP的123端口,修改配置文件执行echo "disable monitor" >> /et ...

  4. ThreadState属性

    这个属性代表了线程运行时状态,在不同的情况下有不同的值,我们有时候可以通过对该值的判断来设计程序流程. ThreadState 属性的取值如下: Aborted:线程已停止: AbortRequest ...

  5. python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法

    1  实例属性和类属性 类和实例都是名字空间,类是类属性的名字空间,实例则是实例属性的名字空间. 类属性可通过类或实例来访问.只有通过类名访问时,才能修改类属性的值. 例外的一种情况是,当类属性是一个 ...

  6. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  7. iOS开发之UIView

    在iPhone里你能看到的.摸到的,都是UIView. 视图坐标系统: UIKit中的坐标都是基于这样的坐标系统:以左上角为坐标的原点,原点向下和向右为坐标轴方向. 坐标值由浮点数来表示,内容的布局和 ...

  8. pyenv - python版本管理

    1. 安装pyenv brew install pyenv 2. 安装python其它版本(如:python 3.6.7) pyenv install --list #查看可以安装的python版本 ...

  9. Io性能分析

    一.iostat使用说明 1.命令使用方法 使用ixstat –x 1 可以每隔1秒钟采集所有设备的io信息.其中的1类似于使用“vmstat  1”后面的1. 2.命令格式说明 ―――――――――― ...

  10. python30 excel修改模块xlutils

    xlrd只读,xlwt只写,xlutils模块则将读写功能结合起来.https://pypi.org/project/xlutils/ 修改excel通过xlutils的copy函数将<clas ...