Google Chrome自动填充功能可删除背景图片

时间:2014-01-28 10:01:49

标签: html css google-chrome

当我在电子邮箱中写电子邮件时,我没有任何问题并且显示完美。 但是当谷歌浏览器决定自动填充时,左侧的图像将被删除。 http://s9.postimg.org/suz3z56f3/Sem_t_tulo.jpg

我已经阅读了一些关于黑客黄色背景的主题,这有效,但图像仍在消失。

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

// html

<input type='email' class='email' placeholder='email'/>

// css

.email{
    background-image: url('http://www.letsgocook.net/sites/default/img/email.png');
    background-repeat: no-repeat;
    padding-left: 35px;
}

http://jsfiddle.net/9AM6X/&gt;例如,但没有显示错误,因为我无法在jsfiddle中复制chrome的自动填充。

7 个答案:

答案 0 :(得分:2)

我在这里发布了一个解决方案,基本上是针对所描述问题的黑客/解决方法。

使用额外元素我们可以将图标放在输入元素上。

Previe w:http://output.jsbin.com/necigedago

工作示例:

enter image description here

<强> CSS

.control {
    position: relative;
}

.email {
    padding-left: 35px;
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 16px;
}

.email ~ .input-icon {
    background-image: url('http://www.letsgocook.net/sites/default/img/email.png');
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center center;
    width: 22px;
    height: 14px;
    position: absolute;
    left: 8px;
    bottom: 0;
    top: 0;
    margin: auto;
}

<强> HTML

  <p class='control'>
    <input type='email' class='email' placeholder='email'/>
    <span class='input-icon'></span>
  </p>

答案 1 :(得分:2)

使用关键帧将图像放回原位:

@-webkit-keyframes autofill {
    to {
        background-image:url(images/your-input-bg-image.svg);
    }
}

input:-webkit-autofill {
    -webkit-animation-name: autofill;
    -webkit-animation-fill-mode: both;
}

@Steve对Removing input background colour for Chrome autocomplete?的回答表示敬意

答案 2 :(得分:1)

唯一的选择是删除背景图片在webkit中的填充,但你可以这样设置样式:

/* CHROME ISSUE W/ YELLOW BG */
input:-webkit-autofill#username,
input:-webkit-autofill#usernameId_new,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
-webkit-text-fill-color: #646464 !important;
-webkit-box-shadow: 0 0 0px 1000px #fff inset;
-webkit-padding-start: 8px !important;
}

图像仍可用于IE,FF等...但是镀铬会覆盖。

最佳 -

答案 3 :(得分:0)

将背景图像用于文本框是非常不方便的。您可以更改HTML标记

<强> HTML

<div class='icon'></div>
<input type='email' class='email' placeholder='email'/>

<强> CSS

.email {
    border:1px solid black;
    padding-left: 5px;
    float:left;
    border-left:none;
    outline:none ;
    margin-left:-3px
}

.icon {
    background-image: url('http://www.letsgocook.net/sites/default/img/email.png');
    background-repeat: no-repeat;
    background-position:center center ;
    float:left;
    width:30px;
    height:18px;
    margin-top:2px;
    border:1px solid black;
    border-right:none
}

我更新了代码:jsFiddle

答案 4 :(得分:0)

我找到了更好的解决方案。

对于新的Chrome版本,您只需将autocomplete="new-password"放入密码字段即可。我已经检查过,工作正常。

答案 5 :(得分:0)

您只需要在输入字段中添加autocomplete="off"即可解决此问题。我试过了,它有效。

答案 6 :(得分:0)

使用动画解决此问题是最有用的方法!

赞扬@wkille的答案:https://stackoverflow.com/a/51874418/11720087

您可以这样设置动画:

@keyframes clearAutofill {
  to { background: 'Your-code'; }
  /* e.g background: url('./img/example.png') 0 0 no-repeat #fff; */
}

input:-webkit-autofill {
  animation: clearAutofill forwards;
  /* 'animation-fill-mode: forwards' can keep the style you set. */
}