美文网首页
如何让select文字居中

如何让select文字居中

作者: 王远清orz | 来源:发表于2019-07-25 20:42 被阅读0次

    做手机端遇到一个问题,如何把select的文字居中,自带的select控件真是很恶心,总结一下目前网上的几种办法:

    赶时间的小伙伴可以直接拖到最下面

    方法一:
    select:{
    width: auto;
    padding: 0 2%;
    margin: 0;
    }
    option{
    text-align:center;
    }
    

    1.必须设置select的padding,留意:padding: 0 2%; 前面的0表示上下,后面的值表示左右,这个值设置为1%都可以,但是不能是0,值越大,select就越长。
    2.不要设置select的宽(width),auto就可以了。
    这种方法就是给左右padding,使文字居中,可是这个值不好控制

    方法二:
    select{
    width:auto;
    height:24px;
    line-height:24px;
    text-align:center;
    text-align-last: center;
    }
    

    这个在安卓上面可以居中,ios上面没有效果,用伪类解决也无效

    方法三:

    这个方法是我自己琢磨出来的,在外面套一个盒子label,id指向这个select

    label{
    width:100%;
    text-align:center;
    }
    

    这个实现了居中显示,可是点击label,IOS上面可以弹出控件,安卓不会弹出select控件

    方法四:使用JS模拟

    最终我是用这个方法解决的,直接上代码

    HTML代码:

    <div class="select-div">
      <span id="select-show">-请选择-</span>
      <select id="sex" name="" class="txt">
        <option value="">-请选择-</option>
        <option value="男">男</option>
        <option value="女">女</option>
      </select>
    </div>
    

    CSS:

    .select-div {
      width: 100%;
      text-align: center;
      border: 1px solid #eee;
      position: relative;
    }
    select.txt {
      position: absolute;
      left: 0px;
      top: 0px;
      width: 100%;
      height: 100%;
      opacity: 0;
    }
    

    JS:

    $('#sex').change(function () {
        var index = $('#sex option:selected').index(); //序号,取当前选中选项的序号
        $('#select-show').html($('#sex option:selected').html());
      })
    

    就可以简单模拟实现select居中的效果了,如果有更好的办法,希望大佬来补充

    相关文章

      网友评论

          本文标题:如何让select文字居中

          本文链接:https://www.haomeiwen.com/subject/pvpkrctx.html