博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯css改变下拉列表select框的默认样式
阅读量:4308 次
发布时间:2019-06-06

本文共 1147 字,大约阅读时间需要 3 分钟。

下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可。

select {  /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/  border: solid 1px #000;  /*很关键:将默认的select选择框样式清除*/  appearance:none;  -moz-appearance:none;  -webkit-appearance:none;  /*在选择框的最右侧中间显示小箭头图片*/  background: url("http://ourjs.github.io/static/2015/arrow.png") no-repeat scroll right center transparent;  /*为下拉小箭头留出一点位置,避免被文字覆盖*/  padding-right: 14px;}/*清除ie的默认选择框样式清除,隐藏下拉箭头*/select::-ms-expand { display: none; }

在线示例  

注* 这篇文章参考了 ,但文中所述固定了select框的长度和高度,对此进行了修改。

更新: 针对旧版IE的解决方案

评论中提到 IE8/9并不支持  appearance:none  CSS属性,想要支持的话可能需要非常特殊的方法,参考: 我们需要为其添加一个父容器,容器是用来覆盖小箭头的,然后为select添加一个向右的小偏移或者宽度大于父级元素。设置父级的CSS属性为超出部分不可见,即可覆盖即小箭头。然后再为父级容器添加背景图片即可。overflow: hidden并不能隐藏下拉框的显示。

HTML

CSS

#parent {    background: url('yourimage') no-repeat;    width: 100px;    height: 30px;    overflow: hidden;}#parent select {    background: transparent;    border: none;    padding-left: 10px;    width: 120px;    height: 100%;}

演示地址:  

美中不足的是这种方案下拉选项的宽度会比他的父容器宽一点。

 

本文转载自:http://ourjs.com/detail/551b9b0529c8d81960000007

转载于:https://www.cnblogs.com/imsomnus/p/6007171.html

你可能感兴趣的文章
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
5、JavaWeb学习之基础篇—标签(自定义&JSTL)
查看>>
8、JavaWEB学习之基础篇—文件上传&下载
查看>>
reRender属性的使用
查看>>
href="javascript:void(0)"
查看>>
h:panelGrid、h:panelGroup标签学习
查看>>
f:facet标签 的用法
查看>>
<h:panelgroup>相当于span元素
查看>>
java中append()的方法
查看>>
必学高级SQL语句
查看>>
经典SQL语句大全
查看>>
log日志记录是什么
查看>>
<rich:modelPanel>标签的使用
查看>>
<h:commandLink>和<h:inputLink>的区别
查看>>
<a4j:keeyAlive>的英文介绍
查看>>