placeholder是H5<input>的屬性之一,可惜在IE10以下不支持,萬惡的IE!不過正因為有IE,才多了很多搗鼓,添了樂趣。不支持就不支持唄,自己動手豐衣足食,我們可以用js模擬出 placeholder的效果。
1、判斷瀏覽器是否支持 placeholder屬性
"placeholder" in document.createElement("input") //false就不支持哦
2、代碼實現
//html
<input type="text" id="signName" placeholder="請輸入用戶名"/> //js var placeHolder = function(ele){ if(ele && !("placeholder" in document.createElement("input"))){ //元素里面的屬性值復制給pleaceHolder; placeholder = ele.getAttribute("placeholder"); ele.onfocus = function(){ if(this.value === placeholder){ this.value = ""; } this.style.color = ""; } ele.onblur = function(){ if(this.value === ""){ this.value = placeholder; this.style.color = "gray"; } }; if(ele.value === ""){ ele.value = placeholder; ele.style.color = "gray"; } } }
3、usage
placeHolder(document.getElementById("signName"));
4、換個思路
其實我們用一個span元素模擬placehoder的效果
<div class="search_box topSearch">
<input type="text" name="search_key">
<i class="search_icon"></i>
<span class="place_holder">請輸入查找的信息</span>
</div>
通過添加css模擬出placeholder的樣式,再通過js去控制span元素和placeholder一樣的效果,也是OK的,只是搗鼓嘛,方法多多益善。
5、placeholder的默認顏色為灰色,怎么改變顏色呢?
使用偽元素
::-webkit-input-placeholder { /* WebKit browsers */
color: #fff;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #fff;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #fff;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
color: #fff;
}
