您可以在網絡上不時看到這些文本輸入框:框內顯示一個灰色標籤,但一旦您鍵入該標籤,灰色文本就會消失。這個頁面甚至有一個:「標題」字段的行爲就像那樣。你能用CSS單獨顯示HTML文本框中的灰色提示嗎?
所以,問題:
是否有這樣的標準術語?我真的很努力地找到谷歌上的任何東西
它可以用CSS來完成嗎?
失敗了,可以用本地化的JavaScript來完成嗎? (即,只在標籤內的代碼,而不是在HTML標頭中)。
您可以在網絡上不時看到這些文本輸入框:框內顯示一個灰色標籤,但一旦您鍵入該標籤,灰色文本就會消失。這個頁面甚至有一個:「標題」字段的行爲就像那樣。你能用CSS單獨顯示HTML文本框中的灰色提示嗎?
所以,問題:
是否有這樣的標準術語?我真的很努力地找到谷歌上的任何東西
它可以用CSS來完成嗎?
失敗了,可以用本地化的JavaScript來完成嗎? (即,只在標籤內的代碼,而不是在HTML標頭中)。
的"placeholder"
屬性是now supported所有主流瀏覽器按照這個網頁。
<form>
<input type="text" placeholder="placeholder text">
</form>
風格化似乎仍然需要供應商前綴:
input::-webkit-input-placeholder {
color: #59e;
}
input:-moz-placeholder {
color: #59e;
}
感謝你。在最新的瀏覽器中正常工作。接受的答覆有點過時了。或者直接使用內聯CSS來處理一般情況: – 2014-01-20 03:48:24
感謝您的提示。 :) – 2014-01-20 05:07:48
我不知道用CSS做這件事的方法。但是看看頁面源代碼,SO正在這麼做:
<input name="q" class="textbox" tabindex="1"
onfocus="if (this.value=='search') this.value = ''"
type="text" maxlength="80" size="28" value="search">
以「onfocus」開頭的中間行是工作發生的地方。當文本字段獲得焦點時,它會檢查是否存在默認值(「搜索」)。如果是這樣,它將值設置爲''(空字符串)。否則,文本不受影響。
這裏存在的一個潛在問題是,如果有人試圖搜索單詞「搜索」,然後點擊框外並再次單擊,文本被重置。這不是一個大問題,但是在你工作的時候要記住一些事情。
我'米驚訝實際上這樣做。更好的方法是使用標誌而不是直接比較文本。 – casablanca 2010-09-27 04:41:56
@casablanca SO源中有一些可疑的前端事情 - 可能是爲了長期可維護性的發展速度。 – alex 2010-09-27 04:43:20
@casablanca - SO不關心標準或最佳實踐。表格在任何地方都可以使用,即使在列表更好的地方也是如此。內聯JavaScript也是如此,即使這種做法微不足道。 – 2010-09-27 04:44:18
input {
position: relative;
}
input label {
position: absolute;
top: 0;
left: 0;
}
input:focus label {
display: none;
}
但是你不能有輸入孩子(據我所知)所以它將不起作用。
如果你想這與HTML + CSS 只有,你可以嘗試使用新的HTML5 placeholder
輸入屬性。不幸的是,這個屬性沒有得到廣泛的支持,所以請嘗試使用諸如Modernizr之類的腳本來檢測此功能的瀏覽器支持。
我不會推薦使用內聯Javascript來做到這一點 - 這是不好的做法,違背了內容和行爲分離的原則。例如,使用jQuery,像這樣的東西可以工作:
var input = $('input[name="search"]');
var placeHolder = input.attr('placeholder');
input.val(placeHolder);
input.focus(function(){
this.value = '';
}).blur(function(){
if(this.value === '') this.value = placeHolder;
});
比這更復雜。如果在用戶在輸入中輸入值之前提交表單,會發生什麼情況?您的提示已提交...所以一定要考慮它。此外,如果進行表單驗證,則需要額外的邏輯來檢查空字段。等 – Madbreaks 2013-05-17 04:35:53
標準名稱是水印輸入。
,如果你有興趣的JQuery http://digitalbush.com/projects/watermark-input-plugin/
有內置的瀏覽器新的HTML。
只需使用「佔位符」屬性:
<輸入ID =「輸入框」類型=「文本」佔位符=「提示文字在這裏」>
您可能已經發現你的答案尋找,但其他人,這可能有助於
<script>
function inputFocus(i){
if(i.value==i.defaultValue){ i.value=""; i.style.color="#000"; }
}
function inputBlur(i){
if(i.value==""){ i.value=i.defaultValue; i.style.color="#888"; }
}
</script>
...
<input type ="text"onfocus="inputFocus(this)" onblur="inputBlur(this)" value="Some Text"/>
希望這可以幫助
不知道是否有一個普遍接受的術語,但至少Windows API調用這些[cue橫幅](http://msdn.microsoft.com/en-us/library/bb775793%28VS 0.85%29.aspx#cue_banner)。 – casablanca 2010-09-27 04:43:22
它應該是輸入框的默認值。 CSS-only [no],JavaScript [是] – vol7ron 2010-09-27 04:49:03
@casablanca佔位符文本應該是一個更好的術語 – 2010-09-27 04:49:10