You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何移除Firefox填充已保存登录信息时的文本框样式?

解决Firefox自动填充密码输入框黄色样式的问题

太懂这种被强制黄色高亮支配的烦躁了!Firefox最近的更新确实调整了自动填充输入框的样式逻辑,普通的-moz-appearance: none这套已经不管用了,给你几个亲测有效的解决办法:

方法1:用Firefox专属伪元素覆盖样式(推荐)

Firefox现在是通过内部高亮逻辑渲染自动填充背景,我们可以用:-moz-autofill系列伪元素,配合高优先级样式覆盖,核心是用内阴影填充整个输入框替换黄色背景:

/* 覆盖自动填充的默认黄色样式 */
input:-moz-autofill,
input:-moz-autofill:hover,
input:-moz-autofill:focus {
  /* 设置为你输入框的默认背景色 */
  background-color: #fff !important;
  /* 对应设置文字颜色 */
  color: #333 !important;
  /* 用超大内阴影完全覆盖原有黄色背景,这步是核心 */
  box-shadow: 0 0 0 1000px #fff inset !important;
  /* 如果有边框样式也可以在这里统一设置 */
  border: 1px solid #ddd !important;
}

这里的!important是为了确保样式优先级超过Firefox默认样式,如果你输入框的选择器足够具体(比如加上类名),也可以不用!important

方法2:关闭特定输入框的自动填充(按需使用)

如果你的场景不需要自动填充功能,可以给输入框添加针对性的autocomplete属性,比通用的autocomplete="off"更靠谱:

<!-- 针对密码输入框,告诉浏览器不要自动填充 -->
<input type="password" autocomplete="new-password">
<!-- 普通文本输入框可以用这个 -->
<input type="text" autocomplete="username">

new-password会明确告诉浏览器这是用于设置新密码的输入框,不会触发自动填充逻辑,自然也就不会出现黄色样式。

方法3:过渡延迟的hack方案(备用)

如果上面的CSS还是不生效,可以试试这个取巧的办法,通过设置极长的背景色过渡时间,让黄色样式永远来不及显示:

input:-moz-autofill {
  transition: background-color 5000s ease-in-out 0s;
}

原理是把背景色的过渡动画拉长到5000秒,相当于在实际使用中黄色背景根本来不及渲染,就被默认背景色覆盖了。

优先推荐方法1,它既能保留自动填充的便利,又能完全去掉讨厌的黄色样式。

内容的提问来源于stack exchange,提问作者user11019314

火山引擎 最新活动