placeholder屬性 點擊文本框,輸入值默認提示內容消失

HTML5裏新引入很多有趣的新特徵;有些體現在HTML裏,有些是JavaScript API,全部非常的有用。其中我最喜歡的一個特徵就是文本框(INPUT)裏的placeholder屬性。placeholder屬性能夠讓你在文本框裏顯示提示信息,一旦你在文本框裏輸入了什麼信息,提示信息就會隱藏。你以前可能無數次看到這種效果,但那些大部分是用JavaScript裏實現的,而現在,HTML5提供了原生支持,而且效果更好!

HTML代碼

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

你也看見了,需要做的只是在文本框的聲明標籤上加入placeholder屬性。完全不需要JavaScript來創造這種效果。

檢查瀏覽器是否支持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

前一篇文章裏我寫了如何用CSS美化鼠標選擇的文字。在進一步研究時我發現了另外一個有趣的CSS功能:CSS美化INPUT placeholder效果。


CSS代碼

火狐瀏覽器裏的用法和谷歌瀏覽器裏不太一樣。它們的名稱都很好理解:

/* all */
::-webkit-input-placeholder { color:#f00; }
::-moz-placeholder { color:#f00; } /* firefox 19+ */
:-ms-input-placeholder { color:#f00; } /* ie */
input:-moz-placeholder { color:#f00; }

/* individual: 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; }

/* individual: 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文字的字體、顏色和風格。你甚至可以將文本框的placeholder以動畫方式顯示。 美化你的文本框都是些看起來很小的事情,但對於一些交互式的網站來說,成功的關鍵就在於細節。現在IE10裏也只支持placeholder了,相信越來越多的人會使用這種原生的placeholder效果。


發佈了16 篇原創文章 · 獲贊 7 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章