欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何避免& quot-內部-自動填充-選定& quot要應用的樣式?

錢多多1年前7瀏覽0評論

我有一個登錄表單,有兩個字段,用戶名和密碼。用戶名字段由chrome自動完成。當我提交表單時(當它有效時),這個樣式被神秘地應用:

input:-internal-autofill-selected {s ?
    background-color: rgb(232, 240, 254) !important;
    background-image: none !important;
    color: -internal-light-dark-color(black, white) !important;
}

有辦法避免這種情況嗎?表單是使用Ajax提交的,所以如果用戶名字段應用了這種樣式,但密碼字段沒有應用,就有點難看。

我注意到,只有當字段中填充了chrome sugggestions列表中的元素時,才會出現這種情況。如果字段中填充的值不在列表中,則不會應用該樣式。

問候 杰米

為了擺脫不良行為,這一招& quot剛剛好& quot(tm):

input:-webkit-autofill,
  input:-webkit-autofill:focus {
    transition: background-color 600000s 0s, color 600000s 0s;
  }

答案并不直觀。與其說這是一個詭計,不如說這是唯一有效的方法:

input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px yellow inset;
}

這將樣式一個黃色背景給你輸入。基本上是一種非常不透明,壓倒性的內心陰影。他們在@ravb79發送的鏈接中使用了相同的技巧。

如果你對淺色主題的默認-內部-自動填充-選擇樣式沒問題,只是想讓它在深色主題中看起來更好,那么你可能只需要:

input {
  color-scheme: dark;
}

你可以添加一個方框陰影來去除藍色背景

box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0), inset 0 0 0 100px rgba(255, 255, 255,1);

我試圖改寫風格,但由于某種原因,它根本不起作用。Webkit或者至少chrome忽略了這種風格。

我補充的時候!webkit / chrome風格的重要之處在于,它完全脫離了等式。在元素檢查器中看不到。

我嘗試的一切要么被忽略,要么被刪除。

所以,我想出了這個可怕的廢話。但到目前為止還行。

// Fix autocomplete shit
function fix_autocomplete_shit() {
    setTimeout(() => {
        if ($(this).is(':-internal-autofill-selected')) {
            var clone = $(this).clone(true, true);
            $(this).after(clone);
            $(this).remove();
        }
    }, 10);
}
$('.form-control').on('input', fix_autocomplete_shit);

我正在使用bootstrap,我想保持背景圖片形式的驗證圖標。

只有上帝知道為什么webkit的創造者認為他們絕對必須將背景圖像設置為無,但如果他們想要戰爭,他們可以擁有它。

您可以添加自己的CSS,使更新后的狀態與常規輸入狀態相匹配。將一個額外的類和!重要屬性應該覆蓋它。

所以:

input.my-input {
    background-color: rgb(255, 255, 255) !important;
    background-image: none !important;
    color: rgb(0, 0, 0) !important;
}

input.my-input:-internal-autofill-selected {
    background-color: rgb(255, 255, 255) !important;
    background-image: none !important;
    color: rgb(0, 0, 0) !important;
}

我還找到了這個btw:https://CSS-tricks . com/snippets/CSS/change-autocomplete-styles-WebKit-browsers/

我稍微調整了一下@kostiantyn-ko的回答,只適用于無效輸入。

薩斯:

input {
  &:is(:invalid, [aria-invalid=true]) {
    // your error styles
    background-color: var(--color-background-critical-subdued);
    border: 1px solid var(--color-border-critical-subdued);

    // hack needed to get rid of autofill styles only on invalid forms
    &:is(:-webkit-autofill, :-webkit-autofill:focus) {
      transition: background-color 600000s 0s, color 600000s 0s;
    }
  }
}

CSS:

/* your error styles */
input:is(:invalid, [aria-invalid=true]) {
  background-color: var(--color-background-critical-subdued);
  border: 1px solid var(--color-border-critical-subdued);
}

/* hack needed to get rid of autofill styles only on invalid forms */
input:is(:invalid, [aria-invalid=true]):is(:-webkit-autofill, :-webkit-autofill:focus) {
  transition: background-color 600000s 0s, color 600000s 0s;
}

這種方式應該可行(記得根據需要切換風格):

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus {
    border: 1px solid rgba(255, 255, 255, 0.25);
    -webkit-text-fill-color: #000;
    -webkit-box-shadow: 0 0 0px 1000px rgb(232, 240, 254) inset;
    transition: background-color 5000s ease-in-out 0s;
}