• 移动端input/textarea输入框光标高度兼容及其他事项


    兼容方式(仅适用于移动端,pc端对ie浏览器兼容不友好)

    IE:不管该行有没有文字,光标高度与font-size大小一致
    
    FF:该行没有文字时,光标大小与input的 height 大小一致;该行有文字时,光标大小与font-size大小一致
    
    chrome:有2种情况,①设置了line-height  该行没有文字时,光标大小与input的 line-height 大小一致; 该行有文字时,光标大小从input顶部到文字底部
    
               ②没有设置line-height  光标大小与font-size一样
    
    所以,input在使用的时候,最好不要设line-height, 可以设定一个较小的height, 然后用 padding 来撑开,这样基本上可以解决所有浏览器的问题
    input{
         220px;
        height: 10px;  //给一个基础的height即可
        padding: 15px 0px;  //设置padding撑开
        font-size: 12px;
        border:1px solid #dcdcdc;
        border-radius: 4px;
    }
    

    注意事项

    1--在iOS端,Input框上部会有阴影,不美观
    添加代码  -webkit-appearance: none;  即可
    
    2--Input字数超出会隐藏超出部分;textarea则会以滚动条展示超出部分。
    则若需填入的字数较多,建议使用textarea,如下
    
    <textarea type="text" v-model="name" rows="2" placeholder="姓名" />
    
    textarea{
        -webkit-appearance: none;  //去除ios端文本框上部阴影
        100%;
        padding: 10px;
        box-sizing: border-box;
        border:1px solid #dcdcdc;
        border-radius: 4px;
        font-size: 14px; 
        resize: none;  //取消文本域拖动属性
    }
    
    3--在iOS端,focus()事件不能延时生效,建议使用$nextTick
    
    let times=setTimeout(()=>{
        document.getElementById("inputElem").focus()    //不生效
        clearTimeout(times)
    },200)
    
    this.$nextTick(()=>{
        document.getElementById("inputElem").focus()  //生效
    })
    
    在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的DOM结构的时候,这个操作都应该放进Vue.nextTick()的回调函数中
    
  • 相关阅读:
    SPOJ 8093 JZPGYZ
    UVA1030 Image Is Everything
    UVA11996 Jewel Magic
    UVA11922 Permutation Transformer
    UVA1479 Graph and Queries
    P3224 [HNOI2012]永无乡
    UVA11020 Efficient Solutions
    UVA12206 Stammering Aliens
    UVA11107 Life Forms
    UVA11019 Matrix Matcher
  • 原文地址:https://www.cnblogs.com/huihuihero/p/12453671.html
Copyright © 2020-2023  润新知