文档章节

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

china008
 china008
发布于 2015/04/08 09:48
字数 743
阅读 57
收藏 2

1、什么是placeholder?

  placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失。

  写法如下:

  

 


2、placeholder的浏览器兼容性和在不同浏览器下的表现

  由于placeholder是html5的新属性,可想而知,仅支持html5的浏览器才支持placeholder,目前最新的firefox、chrome、safari以及ie10都支持,ie6到ie9都不支持。

  下面是其在各个浏览器下的显示效果:

   firefox:

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


   chrome:

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


   safari:

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


   ie10:

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

 

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

   不同的地方在于,在ff和chrome下,输入框获得焦点时,placeholder文字没有变化,只有当输入框中输入了内容时,placeholder文字才消失;而在safari和ie10下,当输入框获得焦点时,placeholder文字便立即消失。

   默认情况下,placeholder的文字是灰色,输入的文字是黑色。而我们拿到的设计稿上的色值往往并不与默认情况下完全一致。那么,如何修改placeholder的色值呢?

   如果直接写input{color:red;},可以看到,ie10和ff下,placeholder文字和输入文字都变成了红色,如下:

   ff:

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

   ie10:

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

    而在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

       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上应用背景图片,获得和失去焦点的时候切换背景图片是否显示。

   实现方法有很多种,欢迎大家各抒已见。  


本文转载自:http://blog.sina.com.cn/s/blog_4a0c5a940101j8bh.html

共有 人打赏支持
china008
粉丝 5
博文 286
码字总数 30406
作品 0
海淀
IE8下对type=checkbox类型的input的placeholder属性的仿写

placeholder属性是HTML5 中为input添加的。在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示。 如 <input type="text" id="userName" pla...

独特55
2015/09/25
0
0
让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在 chrome,firefox,safari,opera,360浏览器(极速模式)、搜狗浏览器等浏览器下均没有问题,而在IE8及IE11下发现样...

JackFace
2015/11/13
0
0
给placeholder属性文字设置颜色 兼容性 伪类伪元素

单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。 css伪类:CSS 伪类用于向某些选择器添加特殊的效果。 css伪元素:CSS 伪元素用于向某些选择器设置特殊效果。 伪元素由双冒号和伪元素名称...

书呆子拍皮球
2016/06/17
101
0
HTML5 的 PLACEHOLDER 属性

HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本...

小编辑
2011/06/29
30.7K
12
jQuery占位符插件--placeMe.js

在 HTML 5 中,占位符 placeholder 属性是很有用的,它能够起到提示左右,指引用户。但一些古老的浏览器不支持该属性,尤其是 IE,而 placeMe.js 就是针对这些古老的浏览器“兼容” placehol...

dowebok
2013/03/28
994
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
1
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
3
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部