设置 文本框 自动填充背景颜色 为白色

关于autofill伪类的 兼容性:

在现代浏览器中,包括Chrome、Safari、Firefox等,都支持:autofill伪类,但在使用时必须加上浏览器前缀-webkit-,即:-webkit-autofill

在旧版的浏览器中,可能不支持:autofill伪类,需要使用其他的hack方法来实现。同时,不同浏览器也可能对:-webkit-autofill的支持程度不同,需要根据实际情况来选择合适的hack方法。


经测试,貌似不用-webkit-autofill也可以。某些情境下可能需要使用 :-webkit-autofill伪类。具体情况,具体分析。【以下 方法中的 属性值 最好都加 "! important",以绝后患!】

方法一:box-shadow

input:-webkit-autofill {
    color: transparent;
    background-clip: content-box;
    background-color: white;
    caret-color: black;
    /*光标设置为 黑色*/

    /*上面根据具体情境 可选,box-shadow最重要!!*/
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    box-shadow: 0 0 0 1000px white inset !important;
}

浏览器的 自动填充机制 在 渲染页面 之后 才会生效,会覆盖设置的CSS样式。为了解决这个问题,你可以使用 transition 属性来延迟样式的生效时间。。。。

方法二:-webkit-text-fill-color 和 transition: background-color 5000s ease-in-out 0s;

input {
    /*必须为background-color属性(即便这里没有设置background-color)、或all 加上 过渡效果,不然不会生效!!*/

    -webkit-text-fill-color: #333333 !important;
    transition: background-color 5000s ease-in-out 0s;
}

方法三:background-color 和 transition: background-color 5000s ease-in-out 0s;

input {
    /*必须为background-color属性、或all 加上 过渡效果,不然不会生效!!*/

    background-color: white !important;
    transition: background-color 5000s ease-in-out 0s;
}

啰嗦一下:

/* 三合一,遇到问题再调整 */
input:-webkit-autofill {
    box-shadow: 0 0 0 30px white inset !important;
    -webkit-text-fill-color: #333333 !important;
    background-color: white !important;
    transition: background-color 5000s ease-in-out 0s;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值