Sencha toucha2中设置文本框默认提示文字的PlaceHolder属性的颜色
在做项目时,我想让一个文本框的提示文字变色,显得更醒目。但是默认的PlaceHolder颜色是灰色的。经过多次尝试和查资料,终于搞懂了。只需要一个CSS样式就可以了。
HTML5对Web Form做了许多增强,比如input新增的tyPE类型、Form Validation等。Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现:
[html]
input id="t1" type="text" placeholder="请输入文字" />
由于placeholder是个新增属性,目前只有少数浏览器支持,如何检测浏览器是否支持它呢?(更多HTML5/CSS3特性检测可以访问)
[javascript]
function hasPlaceholderSupport() {
return 'placeholder' in document.createElement('input');
}
默认提示文字是灰色的,可以通过CSS来改变文字样式:
[css]
/* all */
::-webkit-input-placeholder {
color:#f00;
}
input:-moz-placeholder {
color:#f00;
}
/* inpidual: webkIT */
#field2::-webkit-input-placeholder {
color:#00f;
}
#field3::-webkit-input-placeholder {
color:#090;
background:lightgreen;
text-transform:uppercase;
}
#field4::-webkit-input-placeholder {
font-style:italic;
text-decoration:overline;
letter-spacing:3px;
color:#999;
}
/* inpidual: mozilla */
#field2:-moz-placeholder {
color:#00f;
}
#field3:-moz-placeholder {
color:#090;
background:lightgreen;
text-transform:uppercase;
}
#field4:-moz-placeholder {
font-style:italic;
text-decoration:overline;
letter-spacing:3px;
color:#999;
}
兼容其他不支持placeholder的浏览器:
[css]
VAR PlaceHolder = {
_support: (function() {
return 'placeholder' in document.createElement('input');
}
)(),
//提示文字的样式,需要在页面中其他位置定义
classname: 'abc',
init: function() {
if (!PlaceHolder._support) {
//未对textarea处理,需要的自己加上
var inputs = document.getelementsbytagname('input');
PlaceHolder.create(inputs);
}
}
,
create: function(inputs) {
var input;
if (!inputs.length) {
inputs = [inputs];
}
for (var i = 0, length = inputs.length;
i length;
i++) {
input = inputs[i];
if (!PlaceHolder._support &
&
input.attributes &
&
input.attributes.placeholder) {
PlaceHolder._setValue(input);
input.addEventListener('focus', function(e) {
if (this.value === this.attributes.placeholder.nodeValue) {
this.value = '';
this.className = '';
}
}
, false);
input.addEventListener('blur', function(e) {
if (this.value === '') {
PlaceHolder._setValue(this);
}
}
, false);
}
}
}
,
_setValue: function(input) {
input.value = input.attributes.placeholder.nodeValue;
input.className = PlaceHolder.className;
}
}
;
//页面初始化时对所有input做初始化
//PlaceHolder.init();
//或者单独设置某个元素
//PlaceHolder.create(document.getElementById('t1'));
在做项目时,我想让一个文本框的提示文字变色,显得更醒目。但是默认的PlaceHolder颜色是灰色的。经过多次尝试和查资料,终于搞懂了。只需要一个CSS样式就可以了。
HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现:
[html]
input id="t1" type="text" placeholder="请输入文字" />
由于placeholder是个新增属性,目前只有少数浏览器支持,如何检测浏览器是否支持它呢?(更多HTML5/CSS3特性检测可以访问)
[javascript]
function hasPlaceholderSupport() {
return 'placeholder' in document.createElement('input');
}
默认提示文字是灰色的,可以通过CSS来改变文字样式:
[css]
/* all */
::-webkit-input-placeholder {
color:#f00;
}
input:-moz-placeholder {
color:#f00;
}
/* inpidual: webkit */
#field2::-webkit-input-placeholder {
color:#00f;
}
#field3::-webkit-input-placeholder {
color:#090;
background:lightgreen;
text-transform:uppercase;
}
#field4::-webkit-input-placeholder {
font-style:italic;
text-decoration:overline;
letter-spacing:3px;
color:#999;
}
/* inpidual: mozilla */
#field2:-moz-placeholder {
color:#00f;
}
#field3:-moz-placeholder {
color:#090;
background:lightgreen;
text-transform:uppercase;
}
#field4:-moz-placeholder {
font-style:italic;
text-decoration:overline;
letter-spacing:3px;
color:#999;
}
兼容其他不支持placeholder的浏览器:
[css]
var PlaceHolder = {
_support: (function() {
return 'placeholder' in document.createElement('input');
}
)(),
//提示文字的样式,需要在页面中其他位置定义
className: 'abc',
init: function() {
if (!PlaceHolder._support) {
//未对textarea处理,需要的自己加上
var inputs = document.getElementsByTagName('input');
PlaceHolder.create(inputs);
}
}
,
create: function(inputs) {
var input;
if (!inputs.length) {
inputs = [inputs];
}
for (var i = 0, length = inputs.length;
i length;
i++) {
input = inputs[i];
if (!PlaceHolder._support &
&
input.attributes &
&
input.attributes.placeholder) {
PlaceHolder._setValue(input);
input.addEventListener('focus', function(e) {
if (this.value === this.attributes.placeholder.nodeValue) {
this.value = '';
this.className = '';
}
}
, false);
input.addEventListener('blur', function(e) {
if (this.value === '') {
PlaceHolder._setValue(this);
}
}
, false);
}
}
}
,
_setValue: function(input) {
input.value = input.attributes.placeholder.nodeValue;
input.className = PlaceHolder.className;
}
}
;
//页面初始化时对所有input做初始化
//PlaceHolder.init();
//或者单独设置某个元素
//PlaceHolder.create(document.getElementById('t1'));
觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Sencha toucha2中设置文本框默认提示文字的PlaceHolder属性的颜色
本文地址: https://pptw.com/jishu/586536.html