譯自:[http://webdesignerwall.com/tutorials/cross-browser-html5-placeholder-text](http://webdesignerwall.com/tutorials/cross-browser-html5-placeholder-text)
譯者:蔣宇捷,轉載請標明出處(http://blog.csdn.net/hfahe)
? HTML5表單的最大優點之一是可以為輸入區域添加占位符文字。占位符屬性允許可以為一個空的或者沒有焦點的表單輸入框顯示文本,在獲得焦點后消失。這是一個非常不錯的特性,但是還不被所有的瀏覽器所支持。這個教程將向你展示如何使用Modernizr來檢測瀏覽器是否支持占位符,否則使用jQuery來動態的顯示兼容性的占位符文本。
**示例**
**[源碼下載](http://webdesignerwall.com/file/html5-placeholder.zip)**
**最原始的**Javascript**方式**
??在擁有占位符屬性之前,我們依靠Javascript來制造占位符文本。下面是一個例子,文本被添加到value屬性。當獲得焦點后,它會檢查值是否是“search”并返回空來清空輸入框。如果值為空,它返回“search”。就像你看到的一樣,這個方式并沒有太大的效率,因為必須要檢查每一個輸入區域。
<input type="text" value="Search" onfocus="if (this.value == 'Search') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search';}">?
**jQuery**占位符**(**示例**)**
??現在使用HTML5占位符,比起value屬性更加語義化。但是,占位符屬性還不被所有的瀏覽器所支持。為了支持所有瀏覽器,使用[Modernizr](http://www.modernizr.com/)和[jQuery](http://jquery.com/)相當方便。Modernizr使用來檢測是否支持占位符屬性。如果不支持placeholder,將運行jQuery代碼。它尋找所有擁有占位符屬性的元素并存儲在一個變量里。然后它比較輸入值和占位符的值。如果輸入值為空,將顯示占位符文本并為輸入區域添加一個“placeholder”類。看看[示例](http://webdesignerwall.com/demo/html5-placeholder-text)。要在你的站點上使用,下載Modernizr和jQuery庫并粘貼下面的代碼到你的HTML頁面里(確保jQuery.js和modernizr.js文件在正確的路徑下)。
~~~
<mce:script src="jquery.js" mce_src="jquery.js"></mce:script><mce:script src="modernizr.js" mce_src="modernizr.js"></mce:script> $(document).ready(function(){ if(!Modernizr.input.placeholder){ $('[placeholder]').focus(function() { var input = $(this); if (input.val() == input.attr('placeholder')) { input.val(''); input.removeClass('placeholder'); } }).blur(function() { var input = $(this); if (input.val() == '' || input.val() == input.attr('placeholder')) { input.addClass('placeholder'); input.val(input.attr('placeholder')); } }).blur(); $('[placeholder]').parents('form').submit(function() { $(this).find('[placeholder]').each(function() { var input = $(this); if (input.val() == input.attr('placeholder')) { input.val(''); } }) }); } </script>?
~~~
**移除**Webkit Search**輸入框的樣式**
??Webkit瀏覽器為search輸入框添加了額外的樣式。要移除它們,添加如下的CSS代碼:
~~~
input[type=search] { -webkit-appearance: none; // 譯者注:取消Webkit瀏覽器默認樣式} input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button { display: none;}?
~~~

**貢獻**
??jQuery代碼來自[Nico Hagenburger](http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html).
- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案