改变select默认样式(纯css实现)

发布时间:2020-09-27编辑:脚本学堂
纯css实现的select样式,不用任何js代码或jquery插件,供大家学习参考。在IE系列下,选中某个选项时会有背景色块,IE7-IE10都有此bug,大家测试时注意体会。

我们所熟知的改变select默认的样式的方法,大多都是通过ul,li模拟实现的。
也有一些jquery插件是能过这样的方式来改变select默认样式的,此种方式在form提交后无法获取数据。

用纯css的方法来实现,在select外面添加一个div,设置select的宽度小于父级div的宽度,然后通过设置div的background属性,改变select默认箭头的样式。

此方法也有个问题:在IE系列下,选中某个选项的时候会有背景色块,IE7-IE10都有此bug。
在Opera下,设置div的背景图不显示,select的下拉箭头不显示。

html内容:

<div class="select_style">
<select name="select">
<option>11111111111111</option>
<option>22222222222222222</option>
<option selected>2b2bb2b2b2b2b22</option>
<option>fffffffffffffffffffff</option>
</select>
</div>

css代码:

.select_style {width:240px; height:30px; overflow:hidden; background:url(../images/arrow.png) no-repeat 215px;
border:1px solid #ccc;
-moz-border-radius: 5px; /* Gecko browsers */
-webkit-border-radius: 5px; /* Webkit browsers */
border-radius:5px;
}
.select_style select { padding:5px; background:transparent; width:268px; font-size: 16px; border:none; height:30px;
-webkit-appearance: none; /*for Webkit browsers*/
}

以上代码供大家学习研究之用,哪位有更好的方法,欢迎交流沟通。