只用CSS美化选择框
2012-03-02 11:04 iBlog 阅读(107634) 评论(16) 编辑 收藏 举报<本文译自Style a Select Box Using Only CSS>
当我需要用下拉列表拼凑自定义表单时,我常常不得不使用下拉框(select),由于某些部分是浏览器特定的,如下拉箭头,我花了一段时间去搞清楚如何只使用css轻松地美化下拉框。
下面是一个默认样式的下拉框的长相:
HTML code:
<select>
<option>Here is the first option</option>
<option>The second option</option>
</select>
一个选择框的某些部分我们是可以美化的,比如字体、边框、颜色、内边距和背景颜色:
但是烦人的下拉箭头还是保持不变。没有直接美化它的方式,但解决方案还是非常简单的,首先我们需要用一个div容器包裹在select元素外围:
1 <div class="styled-select">
2 <select>
3 <option>Here is the first option</option>
4 <option>The second option</option>
5 </select>
6 </div>
下一步我们需要加入一些css,以确保选择框元素被以某种方式美化:
.styled-select select {
background: transparent;
width: 268px;
padding: 5px;
font-size: 16px;
border: 1px solid #ccc;
height: 34px;
-webkit-appearance: none; /*for chrome*/
}
我们需要确保选择框的跨度比外围的div容器更宽,这样默认的下拉箭头就会消失(译者注:选择框比外面的div宽大,默认的下拉箭头就会被隐藏)
下面是我们要用的新下拉箭头:
我们的div容器需要被美化成新的下拉箭头出现在我们预想的位置:
.styled-select {
width: 240px;
height: 34px;
overflow: hidden;
background: url(new_arrow.png) no-repeat right #ddd;
}
知道这点解决办法将使你非常容易的,不用别的只使用css就能美化您的选择框。
译者注:在线调式地址http://jsfiddle.net/shishaomeng/KGrYB/ ,各位看官可自行进入调试
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名时邵猛(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。如果您觉得文章很有用,欢迎捐赠!【通过】。