zoukankan      html  css  js  c++  java
  • 移动端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()的回调函数中
    
  • 相关阅读:
    浅谈JavaScript中this指向的⼏种情况
    JavaScript、html简单的级联操作。
    异常处理中throws和throw的区别?
    java异常处理try-catch-finally的执行过程?
    什么是内连接、外连接、交叉连接(笛卡尔积)?
    主键和外键的区别
    集合和数组的比较(为什么要引入集合)?
    Java中对比单继承与多继承的优劣,以及java的解决方案
    数据库
    数据库集中控制的优势
  • 原文地址:https://www.cnblogs.com/huihuihero/p/12453671.html
Copyright © 2011-2022 走看看