原创 HTML5的Placeholder属性实现input文字提示效果

分类:HTML5+CSS3 浏览:10,955次
HTML5的Placeholder属性实现input文字提示效果

HTML5里新引入很多有趣的新特征;有些体现在HTML里,有些是JavaScript API,全部非常的有用。其中我最喜欢的一个特征就是文本框(INPUT)里的placeholder属性。placeholder属性能够让你在文本框里显示提示信息,一旦你在文本框里输入了什么信息,提示信息就会隐藏。你以前可能无数次看到这种效果,但那些大部分是用JavaScript里实现的,而现在,HTML5提供了原生支持,而且效果更好!

HTML代码

<input type="text" name="first_name" placeholder="你的姓名..." />

检查浏览器是否支持Placeholder属性

因为placeholder是一种新属性,很有必要检查一下你的浏览器是否支持它,比如IE6、IE8肯定是不支持的:

 function hasPlaceholderSupport() {
 var input = document.createElement('input');
 return ('placeholder' in input);
}

如果用户的浏览器不支持placeholder特征,你需要借助MooTools, Dojo, 或其它JavaScript工具来实现它:

/* mootools ftw! */
var firstNameBox = $('first_name'),
 message = firstNameBox.get('placeholder');
firstNameBox.addEvents({
 focus: function() {
 if(firstNameBox.value == message) { searchBox.value = ''; }
 },
 blur: function() {
 if(firstNameBox.value == '') { searchBox.value = message; }
 }
});

为了最大化的兼容所有浏览器,给CSS里的placeholder属性添加浏览器引擎前缀还是有必要的。

/* WebKit browsers */
::-webkit-input-placeholder {
 color: #777;
}
/* Mozilla Firefox 4 to 18 */
:-moz-placeholder {
 color: #777;
 opacity: 1;
}
/* Mozilla Firefox 19+ */
::-moz-placeholder {
 color: #777;
 opacity: 1;
}
/* Internet Explorer 10+ */
:-ms-input-placeholder {
 color: #777;
}

各种浏览器对HTML5/CSS3里出现的新特征、新属性的支持是逐步提高的,最终所有的浏览器都会完全支持HTML5/CSS3,这是毫无疑问的。目前,对HTML5的placeholder属性支持的浏览器有谷歌浏览器、火狐浏览器、Safari、Opera,还有IE10+。

作者: JaneCC最后编辑于:2017-05-17 15:38
坚持把简单的事情做好就是不简单,坚持把平凡的事情做好就是不平凡。所谓成功,就是在平凡中做出不平凡的坚持。

--JaneCC

众说纷纭Comments2条留言

  1. 板凳
    :

    每篇文章配个预览效果,想必是极好的。。。

    来自Google Chrome 60.0.3112.90Windows 10的精彩回复 [回复]
  2. 沙发
    :

    你好:x 😡 😡 😡

    来自Google Chrome 69.0.3497.100Windows 10的精彩回复 [回复]

发表感言