input的默认文字在手机端下垂直居中问题

本文探讨了手机端input元素的默认文字在垂直居中方面遇到的问题,通常被视为一个bug。作者提出了一个避免使用placeholder的解决方案,通过添加自定义属性"data-holder",并结合JavaScript来实现类似的功能。当input获得焦点且value与data-holder相同则清空,失去焦点且value为空时显示data-holder的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  平时切页面还真没注意到这个问题,第一反应就是高度行高,后来百度发现这个就是一个bug。看到很多网站是用span来代替placeholder,配合js一起引用,脑袋突然想到另外一个思路。

p1)给input添加一个自定义属性代替placeholder如:data-holder="请输入"

p2)检测input身上是否有data-holder属性,如果有先把input的字体颜色变灰,同时获取这个属性上的文字赋值给input的value

p3)鼠标点击input,判断如果当前value与data-holder属性的文字一致那么清空。不是就保留value值

p4)失去焦点后如果当前value的值为空那么显示data-holder属性的文字

function initinput(){

        $('input').each(function(){
            var _this = $(this);
            var _valur = _this.data('holder');
             if(_this.attr("data-holder")){
                _this.css("color","#757575").val(_valur);
            }
        })
        $(document).off('focus', 'input').on('focus', 'input', function () {
            var $this = $(this);
            if($this.attr("data-holder")){
                $this.css('color', '#333')
            }
           
            if ($this.val() === $this.data('holder')) {
              $this.val('');
            }
        });
          //失去焦点后还原提示内容
        $(document).off('focusout', 'input').on('focusout', 'input', function () {
            var $this = $(this);
            var _valur = $this.data('holder');
            if ($.trim($this.val()) == '') {
              $this.css('color', '#757575').val(_valur);
            }
        });
    }
    initinput()

 

5服务支持:由以下部分构成 5.1顶部有一张 384px宽 100%的图片,下边距为 23px 5.2常用功能部分:宽 1400px,下外边距 40px,标题下外边距为 20px,字体大小为 28px,文本水平垂直居中字体颜色为#000。内容是 5个子项组成(flex水平对齐,平均分配)每个子项宽 200px 200px背景色为#cedbf5,子项内容水平垂直对齐,字体大小为 20px,子项内容的图片的盒子背景图大小为 60px不重复。鼠标移入子项时字体颜色变成#fff,背景色为#f08300,放大 1.1倍,内容图片盒子的背景图切换成白色,子项有过渡效果。 5.3投诉建议部分:宽 1200px。标题下外边距为 30px,字体大小为 30px,文本水平垂直居中字体颜色为#000。下面有个小标题,水平垂直居中,内边距为 10px,左右外边距为 20px,字体颜色为#000。小标题亮:字体颜色为#f08300下边框 1px实线颜色#f08300。内容部分标题的*号是字体颜色红色,其他字体颜色是#767676,上下内边距为 7px,字体大小是 16px。姓名,手机,邮箱,运货单,问题内容的包裹输入框的盒子宽 450px,左右内边距 12px上下内边距 6px,(flex 一行两个水平对齐。背景色为#767676,输入框宽 100%,100%。输入框下面的提示内边距为上下 15px,左 10px,下外边距 8px,字体大小为 12px。问题内容部分:输入框数文本域,默认 3行文字度,只能上下拉动不能左右拉动。宽度 100%。最后有两个按钮宽 180px, 40px,字体颜色为#fff,背景色为#f08300,圆角 20px文本水平垂直对齐两端对齐。
最新发布
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值