假设某人正在开发一个允许用户创建配置文件的网站。这位设计师非常喜欢圆角输入字段的外观,但Chrome的自动填充功能对它们做了一些奇怪的事情。当然,他们可以采取简单的方法,删除边界半径定义,从而避免奇怪的角落,但这样网站就不会有他们所希望的外观。
下面是使用自动填充时字段的before-and-after images。
这里有一个JSFiddle,适合任何想玩它的人。
如果有帮助,下面是用于修改字段的相关代码:
.field {
background-color: #202020;
border: 1px solid #000;
border-radius: 4px;
box-shadow: 0 0 5px #000;
color: #d8d8d8;
}
input:-webkit-autofill {
box-shadow: 0 0 0 100px #202020 inset, 0 0 5px #000;
-webkit-text-fill-color: #d8d8d8;
}
为了找到这个问题背后的罪魁祸首,我们做了几次尝试,包括从两个定义中删除外部阴影,以及改变内部阴影的位置和模糊半径。灰色的角落还在。唯一真实的的“解决方案”是恢复方形角落,但这一选择被保留为最后手段。
在无数次寻找解决这个问题的方法后,所能找到的都是规避默认淡黄色背景的方法。这是个好消息,但设计师仍然留下了那些丑陋的角落。有没有一种方法可以完全摆脱它们,保持该领域的原始风格?还是没有解决办法的小故障
感谢您提供的任何见解或帮助。
6条答案
按热度按时间smdnsysy1#
Kreven的解决方案虽然不是最优雅的代码行,但我认为对大多数人来说肯定能完成这项工作。然而,我想稍微修改一下,解释一下为什么它能在第一位工作。让我们来看看这行代码:
这是一个需要68.24年才能完成的过渡。看起来很傻,对吧?如果你想知道这个神奇的数字是从哪里来的(2147483647),这是一个整数的最大大小,因此也是CSS转换的最大持续时间。这种转变所做的是让你的浏览器的自动填充实现需要64年的时间来改变你输入的背景颜色。
同样值得注意的是,这个便宜的技巧将使您不需要使用“-webkit-box-shadow”CSS命令(当然,除非您需要自动填充背景颜色与非自动填充背景颜色不同)。
希望这对某人有帮助!干杯
kkbh8khc2#
我发现增加边框宽度并使其与输入背景颜色相同似乎有帮助。然后减少填充以达到相同的高度:
https://jsfiddle.net/Lguucatv/1/
还修改了盒形阴影以匹配原始设计:
ar7v8xwq3#
有没有一种方法可以完全摆脱它们,保持该领域的原始风格?
这里是CSS
DEMO
gfttwv5a4#
添加过渡到背景色与高动画时间到.field元素
发现溶液here
demo on codepen
50few1ms5#
我把这个问题添加到我的CSS中:
ua4mk5z46#
这可以帮助您避免这些恼人的边界: