chrome瀏覽器當(dāng)表單自動(dòng)填充時(shí)如何去除瀏覽器自動(dòng)添加的默認(rèn)樣式
一、發(fā)現(xiàn)該問(wèn)題的原因-是在寫(xiě)賬號(hào)登錄頁(yè)面時(shí),input表單添加了背景圖片,當(dāng)自動(dòng)填充,搓搓的一坨淡黃色背景出來(lái)。
這個(gè)原因是我草率的直接設(shè)置在input元素里面,結(jié)果問(wèn)題就來(lái)了。所以如果把這個(gè)圖標(biāo)放在input表單外面,就不會(huì)出現(xiàn)這個(gè)問(wèn)題。
二、表單自動(dòng)填充會(huì)添加瀏覽器默認(rèn)樣式怎么處理和避免
第二張圖,就是表單自動(dòng)填充后,chrome會(huì)默認(rèn)給自動(dòng)填充的input表單加上input:-webkit-autofill私有屬性
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { background-color: rgb(250, 255, 189); /* #FAFFBD; */ background-image: none; color: rgb(0, 0, 0); }
看到這里添加上這段代碼,我會(huì)想到使用樣式覆蓋的方法解決。我完全可以使用!important去提升優(yōu)先級(jí)。但是有個(gè)問(wèn)題,加!important不能覆蓋原有的背景、字體顏色,除了chrome默認(rèn)定義background-color,background-images,color不能使用
!important提升優(yōu)先級(jí),其他屬性均可使用它來(lái)提升優(yōu)先級(jí)。
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { background-color: #FFFFFF; background-image: none; color: #333; /* -webkit-text-fill-color: red; //這個(gè)私有屬性是有效的 */ } input:-webkit-autofill:hover { /* style code */ } input:-webkit-autofill:focus { /* style code */ }
思路有兩個(gè),1、通過(guò)打補(bǔ)丁,修復(fù)bug。2、關(guān)閉瀏覽器自帶填充表單功能
情景一:input文本框是純色背景的
解決辦法:
input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset; -webkit-text-fill-color: #333; }
情景二:input文本框是使用圖片背景的
解決辦法:
if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) { var _interval = window.setInterval(function () { var autofills = $('input:-webkit-autofill'); if (autofills.length > 0) { window.clearInterval(_interval); // 停止輪詢(xún) autofills.each(function() { var clone = $(this).clone(true, true); $(this).after(clone).remove(); }); } }, 20); }
先判斷是否是chrome,如果是,則遍歷input:-webkit-autofill元素,再通過(guò)取值,附加,移除等操作來(lái)實(shí)現(xiàn)。 這個(gè)方法沒(méi)效果!!
所以最后我是不使用圖標(biāo)作為input表單的背景圖片,而是多寫(xiě)一個(gè)標(biāo)簽,把圖標(biāo)拿到表單外面來(lái)。
思路二: 關(guān)閉瀏覽器自帶填充表單功能
設(shè)置表單屬性 autocomplete="off/on" 關(guān)閉自動(dòng)填充表單,自己實(shí)現(xiàn)記住密碼
<!-- 對(duì)整個(gè)表單設(shè)置 -->
<form autocomplete="off" method=".." action="..">
<!-- 或?qū)我辉卦O(shè)置 -->
<input type="text" name="textboxname" autocomplete="off">
如圖:未自動(dòng)填充前,此時(shí)這個(gè)郵箱的小圖標(biāo)是inpu表單的背景圖片
如圖:填充后,郵箱小圖標(biāo)被瀏覽器默認(rèn)樣式覆蓋掉
最后,
如果不想多去處理chrome瀏覽器下表單自動(dòng)填充出現(xiàn)的添加默認(rèn)樣式,那就把這個(gè)小小的圖標(biāo)放到表單外面吧,我這個(gè)因?yàn)槭莍nput框
只有border-bottom,如果這個(gè)input框有邊框,那么可能需要使用一個(gè)div的邊框的來(lái)假裝成input框的邊框,然后input框弄成是沒(méi)有邊框的。
像這樣的input框
通過(guò)以上方法成功幫朋友解決瀏覽器自動(dòng)添加默認(rèn)樣式問(wèn)題,小伙伴們可以放心參考此文。
- js代碼判斷瀏覽器種類(lèi)IE、FF、Opera、Safari、chrome及版本
- 使用Chrome調(diào)試JavaScript的斷點(diǎn)設(shè)置和調(diào)試技巧
- JavaScript無(wú)提示關(guān)閉窗口(兼容IE/Firefox/Chrome)
- 解決javascript:window.close()在chrome,Firefox下失效的問(wèn)題
- 如何實(shí)現(xiàn)chrome瀏覽器關(guān)閉頁(yè)面時(shí)彈出“確定要離開(kāi)此面嗎?”
- 完美兼容IE,chrome,ff的設(shè)為首頁(yè)、加入收藏及保存到桌面js代碼
- JQuery自適應(yīng)IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
- jQuery一步一步實(shí)現(xiàn)跨瀏覽器的可編輯表格,支持IE、Firefox、Safari、Chrome、Opera
- 兼容IE、FireFox、Chrome等瀏覽器的xml處理函數(shù)js代碼
- jQuery旋轉(zhuǎn)插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
- js chrome瀏覽器判斷代碼
- json格式化/壓縮工具 Chrome插件擴(kuò)展版
- 解決ExtJS在chrome或火狐中正常顯示在ie中不顯示的瀏覽器兼容問(wèn)題
- JavaScript獲取鼠標(biāo)坐標(biāo)的函數(shù)(兼容IE、FireFox、Chrome)
- 禁止選中文字兼容IE、Chrome、FF等
- javascript判斷chrome瀏覽器的方法
- Chrome擴(kuò)展頁(yè)面動(dòng)態(tài)綁定JS事件提示錯(cuò)誤
- Chrome開(kāi)發(fā)者工具9個(gè)調(diào)試技巧詳解
相關(guān)文章
JS利用循環(huán)解決的一些常見(jiàn)問(wèn)題總結(jié)
循環(huán)輸出問(wèn)題是面試中經(jīng)典的題目,一般會(huì)給出代碼,讓我們解釋原因,并給出若干解決方案,下面這篇文章主要給大家介紹了關(guān)于JS利用循環(huán)解決的一些常見(jiàn)問(wèn)題,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08document.selection.createRange方法與實(shí)例
document.selection.createRange() 根據(jù)當(dāng)前文字選擇返回 TextRange 對(duì)象,或根據(jù)控件選擇返回 ControlRange 對(duì)象2006-10-10一個(gè)js封裝的不錯(cuò)的選項(xiàng)卡效果代碼
在論壇里經(jīng)常看到人問(wèn)選項(xiàng)卡或者類(lèi)似選項(xiàng)卡的切換效果 這里封裝了個(gè)js,希望對(duì)大家有用 所有代碼都在下面了 如果有錯(cuò)誤或者建議,可以回貼告訴我,謝謝2008-02-02詳解webpack+gulp實(shí)現(xiàn)自動(dòng)構(gòu)建部署
這篇文章主要介紹了詳解webpack+gulp實(shí)現(xiàn)自動(dòng)構(gòu)建部署,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06