input去除自动填充后样式

input去除自动填充后样式

常见于登录页面,浏览器设置了记住密码后,input会自动填充内容,造成填充内容后的input会变色,色值不定,反正就是不好看。

在这里插入图片描述

原因

input自动填充的样式是用Shadow-dom的方式实现的,游离于DOM 树之外的节点树,不好通过css直接修改。要开启谷歌浏览器的Show user agent shadow DOM设置才能看到对应的css。

在这里插入图片描述

解决方法

1、关闭自动填充表单功能

此方式对直接用form和input写的页面有效,对一些封装的第三方UI不大友好,例如elementUI。会不生效。

<form autocomplete="off">
<input type="text" autocomplete="off">

2、设置input样式动画

此方式最直接有效,全局设置,延长自动填充背景色动画的时间,对原生或封装的UI都很友好,推荐使用。

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-transition-delay: 99999s;
  -webkit-transition: color 99999s ease-out, background-color 99999s ease-out;
}

参考

Shadow-dom相关可参考此文,很详细 shadow dom的作用和用法详解(createShadowRoot, attachShadow)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值