chrome表單自動填充後,input文本框的背景會變成偏黃色的,想必你們都會碰到這種狀況吧,這是因爲chrome會默認給自動填充的input表單加上input:-webkit-autofill私有屬性形成的,解決方法以下,感興趣的朋友能夠了解下jquery
情景一:input文本框是純色背景的
能夠對input:-webkit-autofill使用足夠大的純色內陰影來覆蓋input輸入框的黃色背景;如:
代碼以下:web
input:-webkit-autofill { chrome
-webkit-box-shadow: 0 0 0px 1000px white inset;
border: 1px solid #CCC!important;
}
app
若是你有使用圓角等屬性,或者發現輸入框的長度高度不太對,能夠對其進行調整,除了chrome默認定義的background-color,background-image,color不能用!important提高其優先級之外,其餘的屬性都可使用!important提高其優先級,如:
測試
代碼以下:this
input:-webkit-autofill {
-webkit-box-shadow: 0 0 0px 1000px white inset;
border: 1px solid #CCC!important;
height: 27px!important;
line-height: 27px!important;
border-radius: 0 4px 4px 0;
}
spa
情景二:input文本框是使用圖片背景的
這個比較麻煩,目前還沒找到完美的解決方法,有兩種選擇:
一、若是你的圖片背景不太複雜,只有一些簡單的內陰影,那我的以爲徹底可使用上面介紹的方法用足夠大的純色內陰影去覆蓋掉黃色背景,此時只不過是沒有了原來的內陰影效果罷了。
二、若是你實在想留住原來的內陰影效果,那就只能犧牲chrome自動填充表單的功能,使用js去實現,例如:
orm
代碼以下:對象
$(function() {
if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
$(window).load(function(){
$('ul input:not(input[type=submit])').each(function(){
var outHtml = this.outerHTML;
$(this).append(outHtml);
});
});
}
10.});
圖片
遍歷的對象可能要根據你的需求去調整。若是你不想使用js,好吧,在form標籤上直接關閉了表單的自動填充功能:autocomplete=」off」。
關於網上盛傳的方法不奏效的一些測試
這個問題困擾了我挺長一段時間的,網上寫的方法主要有2種:第一種是在樣式裏對input:-webkit-autofill重寫background-color和color,使用!important提升其優先級。第二種是使用jquery,先判斷是不是chrome,若是是,則遍歷input:-webkit-autofill元素,再經過取值,附加,移除等操做來實現。
可是我測試發現,這兩種方法都不湊效!不知道是隨着chrome版本的升級,如今的chrome(27)已經不支持重寫input:-webkit-autofill原有的屬性,仍是怎麼回事。另外js也沒法獲取到chrome自動填充的表單的value值,因此網上盛傳的使用jquery解決的方法也是不湊效,最多也就只能去掉黃色背景,而自動填充的value卻被移除了。chrome自動填充的表單的value值是存在DocumentFragment裏的div中的,若是有哪位童鞋知道怎麼獲取chrome自動填充的表單的value值,還請指教一下。