拒绝javascript 模拟 只用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宽大,默认的下拉箭头就会被隐藏)

    下面是我们要用的新下拉箭头:

    down_arrow_select

    我们的div容器需要被美化成新的下拉箭头出现在我们预想的位置:

    .styled-select {
       width: 240px;
       height: 34px;
       overflow: hidden;
       background: url(new_arrow.png) no-repeat right #ddd;
    }
  •  
  •  
  • http://jsfiddle.net/shishaomeng/KGYB/

    知道这点解决办法将使你非常容易的,不用别的只使用css就能美化您的选择框

    不过可惜的是option实在没法优化!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值