让ie8实现placeholder属性效果,value值的默认颜色怎么设置才能和输入时的颜色不冲突?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

让ie8实现placeholder属性效果,value值的默认颜色怎么设置才能和输入时的颜色不冲突?

a123456678 2016-03-13 19:01:27 1778

screenshot


请问用上面这种方式,如果设置了value的默认颜色,怎么避免输入时的颜色不一样?
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:03:02
    <input type="text" name="搜索" value="搜索" placeholder="搜索" id="selector"/>
    这个placeholder在ff、chrome等浏览器支持修改样式
    
    ::-moz-placeholder{color:red;}              //ff
    ::-webkit-input-placeholder{color:red;}     //chrome,safari
    :-ms-input-placeholder{color:red;}          //ie10          
    然后判断一下 如果浏览器不支持placeholder(我这个例子只判断了ie8),再进行js模拟placeholder的操作
    
    $(function(){
        if(!!navigator.userAgent.match(/MSIE 8.0/)){
                $('input[placeholder], textarea[placeholder]').each(function() {
                    var input = $(this);
                    if (input.val() === '' && input.attr("placeholder") !== ''){   
                        input.addClass("placeholder").val(input.attr('placeholder'));
                    }
    
                    input.focus(function() {
                        if (input.val() === input.attr('placeholder')) {
                            input.val('');
                        }
                    });
    
                    input.blur(function() {
                        if (input.val() === '' || input.val() === input.attr('placeholder')) {
                            input.val(input.attr('placeholder'));
                        }
                    });
                });
        }
    });

    注释:
    :text选择所有类型为text的input元素。
    如果需要自定义样式,并且希望placeholder在所有浏览器下表现一致,可以通过利用label标签模拟一个placeholder的样式放到输入框上,当输入框获得焦点的时候,隐藏label,当输入框失去焦点的时候,显示label。
    根据以上的代码 你就可以设置placeholder这个class的style了

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章