默认下拉框select美化

默认的select下拉框,样子丑,并且在各个浏览器的样子还不一样。所以需要美化。当然,要完全兼容的话,改起来会很费事,这时就建议你自己模拟了,或找相关插件。比如jquery插件啊js插件等等. 这里主要介绍默认下拉框美化方法。

思路:
重置select 默认下拉框样式,用自定义的图片覆盖默认下拉三角按钮。如果低版本ie9以下的话,建议套个外层div(overflow-x: hiddden),让select超出外层宽度隐藏。

关键代码:

dom结构:

<div class="button custom-select">
  <select>
    <option value="选择1" selected="selected">Connecticut</option>
    <option value="选择2">New York</option>
    <option value="选择3">Maryland</option>
    <option value="选择4">Virginia</option>
  </select>
</div>

css:

select{    
  border: solid 1px #ccc;    
  appearance: none;/*清除select下拉框默认样式*/    
  -moz-appearance: none;    
  -webkit-appearance: none;   
  padding-right: 14px;/*为下拉小箭头留出一点位置,避免被文字覆盖*/    
  background: url("img/arrow.png") no-repeat scroll right center transparent;/*自定义图片覆盖原有的下三角符号*/
}
select::-ms-expand {    
  display: none;/*清除IE默认下拉按钮,但是测试发现IE10以上有效,IE8,9默认下拉按钮仍旧存在*/
}

(2020.3.20)优化更新

  • 简单自定义select的样式,更少代码,更优体验。
  • 适用场景:移动端简单的h5页面,微信公众号类,扫码录入信息等等。
  • 优点:代码少,无需引入三方ui库,体验还算可以。
  • 用到的图片:


    icon-select-arrow.png

具体代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>select自定义样式</title>
    <style type="text/css">
        /*自定义下拉框样式*/
        select{
            -webkit-appearance: none;
            -moz-appearance: none;
            -ms-appearance: none;
            appearance: none;
            cursor: pointer;
        }
        /*清楚IE选择框的默认样式,隐藏下拉箭头*/
        select::-ms-expand { 
            display: none; 
        }
        select.select-custom{
            border: none;
            outline: none;
            background: transparent url(img/icon-select-arrow.png) no-repeat right center;
            padding-right: 1.1em;
            background-size: 0.8em 0.6em;
            font-size: 16px;
            line-height: 1.5;
        }
        select.select-custom option:hover{
            background-color: #f00;
        }
        .select-custom-wrap{
            display: inline-block;
            padding: 0 4px;
            border: 1px solid #848484;
        }
    </style>
</head>
<body>
    <div class="select-custom-wrap">
        <select class="select-custom">
        <option value="1">谷歌浏览器</option>
        <option value="2">火狐浏览器</option>
        <option value="3">Opera浏览器</option>
        <option value="4">IE浏览器</option>
    </select>
    </div>
</body>
</html>
  • 效果图:


    主流浏览器效果.png
  • option选项弹出框的效果:PC端浏览器效果插件不大,移动端,iOS系统是滚动选择类,Android系统是弹出框选择类。

参考:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 13,728评论 3 184
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,685评论 32 459
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,195评论 4 61
  • 李可,《杜拉拉升职记》片段二,34页李斯特到广州办开会,忽然想起什么,做拷问状,问拉拉:“要是由你来做上海办这个装...
    ME_WOW阅读 1,696评论 0 0