1、什么是placeholder?

placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失。
写法如下:
2、placeholder的浏览器兼容性和在不同浏览器下的表现
由于placeholder是html5的新属性,可想而知,仅支持html5的浏览器才支持placeholder,目前最新的firefox、chrome、safari以及ie10都支持,ie6到ie9都不支持。
下面是其在各个浏览器下的显示效果:
firefox:
chrome:
safari:
ie10:

可以看出,placeholder的文字在各个浏览器下基本都是淡灰色显示。

不同的地方在于,在ff和chrome下,输入框获得焦点时,placeholder文字没有变化,只有当输入框中输入了内容时,placeholder文字才消失;而在safari和ie10下,当输入框获得焦点时,placeholder文字便立即消失。
默认情况下,placeholder的文字是灰色,输入的文字是黑色。而我们拿到的设计稿上的色值往往并不与默认情况下完全一致。那么,如何修改placeholder的色值呢?
如果直接写input{color:red;},可以看到,ie10和ff下,placeholder文字和输入文字都变成了红色,如下:
ff:
ie10:

而在chrome和safari下,placeholder文字颜色不变,只有输入的文字变成红色。

显然,这种做法是行不通的。因为我们只想改变placeholder文字的颜色,并不想改变输入文字的颜色。
正确的写法如下:
::-moz-placeholder{color:red;}              //ff
::-webkit-input-placeholder{color:red;}     //chrome,safari
:-ms-input-placeholder{color:red;}          //ie10
3、如何使placeholder兼容所有浏览器
前面我们知道了,ie6到ie9并不支持原生的placeholder,并且即使在支持原生placeholder的浏览器上,其表现也并不一致。在实际项目中,如何使所有浏览器都一致地支持placeholder呢?
(1)如果只需要让不支持placeholder的浏览器能够支持改功能,并不要求支持原生placeholder的浏览器表现一致,那么可以采用如下方法:
   function placeholder(nodes,pcolor) {
      if(nodes.length && !("placeholder" in document_createElement_x("input"))){
          for(i=0;i< nodes.length;i++){
              var self = nodes[i],
                  placeholder = self.getAttribute('placeholder') || '';     
              self.onfocus = function(){
                  if(self.value == placeholder){
                     self.value = '';
                     self.style.color = "";
                  }               
              }
              self.onblur = function(){
                  if(self.value == ''){
                      self.value = placeholder;
                      self.style.color = pcolor;
                  }              
              }                                       
              self.value = placeholder;  
              self.style.color = pcolor;              
          }
      }
    }    
(2)如果需要自定义样式,并且希望placeholder在所有浏览器下表现一致,可以通过利用label标签模拟一个placeholder的样式放到输入框上,当输入框获得焦点的时候,隐藏label,当输入框失去焦点的时候,显示label。
或者是在input上应用背景图片,获得和失去焦点的时候切换背景图片是否显示。
实现方法有很多种,欢迎大家各抒已见。  

转载于:https://www.cnblogs.com/youmingkuang/p/5204993.html

placeholder在不同浏览器下的表现及兼容方法 placeholder兼容相关推荐

  1. placeholder在不同浏览器下的表现及兼容方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是placeholder? placeholder是html5新增的一个属性,当input或者textarea设置了该 ...

  2. placeholder在某些浏览器下不垂直居中问题

    将input的line-height设置为normal即可,让浏览器自己去判断 转载于:https://blog.51cto.com/chenhuixfyy/1359275

  3. vue框架在ie浏览器下的问题以及解决方法

    vue浏览器兼容性问题ie9 ie10 edge vue 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能模拟的 ECMAScript 5 特性,比如Object.defineP ...

  4. html游戏禁止微信浏览器下拉,JavaScript实现禁止微信浏览器下拉回弹效果

    这篇文章主要为大家详细介绍了JavaScript禁止微信浏览器下拉回弹效果的方法,具有一定的参考和学习JavaScript的价值,对JavaScript感兴趣的小伙伴们可以参考一下本篇文章 本文实例为 ...

  5. 浏览器css bug及bug解决方法

    Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...

  6. Flex 布局在IE浏览器下的兼容问题

    Flex 布局在IE浏览器下的兼容问题 原文地址:gitub上的Flexbugs list,可以看到Flex布局在IE糟糕表现的详细描述. 2. Column flex items set to al ...

  7. 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不完全一致

    我们一般在定义CSS样式的时候都需要定义去掉HTML标签默认样式的CSS,原因是在不同的浏览器下面它们的表现出来的默认样式不完全一致,我们要保证在不同的浏览器下它们能正常显示出我们想要达到的预期效果, ...

  8. Safari浏览器下colgroup失效导致表格列宽均分

    Safari浏览器下colgroup失效导致表格列宽均分 表现 原因 解决 表现 使用原生tabel标签写表格,由于需要对表头做特殊处理,所以采用两个表格组装的方式写,表头也是用单独的table标签写 ...

  9. Element-UI在safari浏览器下table列表无法对齐的问题

    由于Element-UI的table列表会在两个column中间添加一条能够拖动的竖线,(可能表现的不明显以至于很多人并没有发现,但是竖线是确实存在的.)在safari浏览器下这个竖线的样式无法正确渲 ...

  10. 云输入法+linux,搜狗云输入法在Ubuntu下的表现

    搜狗云输入法在Ubuntu下的表现 转自:搜狗云输入法在Ubuntu下的表现 搜狗云输入法一经发布就引起叻广泛的关注,在我所订阅的几个博客上也是在第一时间有了体验报告,譬如HanBing 的搜狗云输入 ...

最新文章

  1. mqtt+htttp+websocket
  2. html语言中空格用什么表示,HTML中的5种空格各表示的意义
  3. 计算机网络(一)计算机网络体系
  4. 没有写入hosts文件权限
  5. C++算法四:顺序查找
  6. std在汇编语言是什么指令_汇编语言程序指令整理
  7. TCPClient例子(3)基于委托和事件的TcpHelper程序
  8. 2021-08-18我的第一篇博客——STM32单片机的开发环境Keil5(MDK)的安装与破解
  9. BOS 系统 定区关联客户功能实现
  10. 北京54坐标系转换工具
  11. 行业大数据技术发展趋势
  12. 新浪微博API错误代码说明对照表
  13. 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——8人工智能与人类社会未来
  14. django管理后台列表页,TextField字段展示换行等格式(format_html)
  15. 文件共享服务器onedrive,如何共享OneDrive文件和文件夹
  16. conemu 打开wsl 报错
  17. EASYRECOVERY_3.3.29包含注册机、都教授数据恢复含注册码
  18. python中的format什么意思
  19. win7资源管理器从计算机开始,Win7系统资源管理器在哪里?
  20. 计算机工程陶瓷,捏陶瓷之形,赏中华之美

热门文章

  1. IT人喝酒不同岗位不同姿态,最服运维!
  2. 华为云TechWave全球技术峰会,看云基础设施全新打开方式
  3. 给创业者们推荐一个好的工具
  4. 你会买新款 Macbook Pro 么?
  5. pytorch自带网络_一篇长文学懂 pytorch
  6. python转cython_Cython的简单使用
  7. 自动化测试 短信验证登录
  8. c# 查询sql 返回多个參数
  9. Activity是如何挂载Pargment的Day35
  10. lax文件的编码问题