如何更改显示在input[type=search]上的X的颜色通过使用webkit-search-cancel-button和webkit-appearance: none,我可以将其更改为彩色正方形或圆形,但无法更改X的颜色。这个问题是默认颜色的X在safari是黑色和文本框是黑色,因此这是不可见的。 chrome 选择了一个安全的颜色灰色,但它也有同样的问题。
webkit-search-cancel-button
webkit-appearance: none
smdncfj31#
你可能不再需要这个解决方案了,但我会把它放在这里,看看它是否对任何人都有帮助。您不能直接更改清除按钮(x)的颜色(就我所尝试的而言),但我想出了一些技巧来更改按钮的外观。基本上,我只是删除了默认的清除按钮,并将其替换为黑色清除按钮图像(我在这里使用了base64编码图像,您可以使用任何图像)。
[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; height: 10px; width: 10px; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjEyMy4wNXB4IiBoZWlnaHQ9IjEyMy4wNXB4IiB2aWV3Qm94PSIwIDAgMTIzLjA1IDEyMy4wNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTIzLjA1IDEyMy4wNTsiDQoJIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZD0iTTEyMS4zMjUsMTAuOTI1bC04LjUtOC4zOTljLTIuMy0yLjMtNi4xLTIuMy04LjUsMGwtNDIuNCw0Mi4zOTlMMTguNzI2LDEuNzI2Yy0yLjMwMS0yLjMwMS02LjEwMS0yLjMwMS04LjUsMGwtOC41LDguNQ0KCQljLTIuMzAxLDIuMy0yLjMwMSw2LjEsMCw4LjVsNDMuMSw0My4xbC00Mi4zLDQyLjVjLTIuMywyLjMtMi4zLDYuMSwwLDguNWw4LjUsOC41YzIuMywyLjMsNi4xLDIuMyw4LjUsMGw0Mi4zOTktNDIuNGw0Mi40LDQyLjQNCgkJYzIuMywyLjMsNi4xLDIuMyw4LjUsMGw4LjUtOC41YzIuMy0yLjMsMi4zLTYuMSwwLTguNWwtNDIuNS00Mi40bDQyLjQtNDIuMzk5QzEyMy42MjUsMTcuMTI1LDEyMy42MjUsMTMuMzI1LDEyMS4zMjUsMTAuOTI1eiIvPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=); background-size: 10px 10px; }
<input type="search">
b09cbbtk2#
我找不到只更改颜色的方法,但您可以使用以下内容覆盖“x”按钮样式:
input[type="search"]::-webkit-search-cancel-button { /* Remove default */ -webkit-appearance: none; /*Your new styles */ height: 10px; width: 10px; background: red; }
目前,Webkit浏览器(Chrome、Safari)支持此功能。https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button
xn1cxnb43#
更改颜色的一个变通方法是使用filter,在我的例子中,我只是希望x是黑色或灰色(而不是蓝色),所以我使用了black and white filter您可以使用invert filter使x在深色背景上变亮。
filter
x
kuarbcqp4#
现在是2023年,似乎没有人提出一个伟大的解决方案,只是改变X的颜色。不幸的是,似乎颜色不能直接改变,但你可以取代内置的X与自己的,并改变X的颜色。出于我的需要,我希望颜色是基于生成的主题的动态的,所以只创建一种颜色的SVG不是一个足够好的解决方案。然而,您可以创建一个svg X并使用-webit-mask-image以您选择的颜色显示它。这似乎是其他一些人提出的一个更简单的通用解决方案。
-webit-mask-image
input { background: black; color: white; } [type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; background-color: var(--color); -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/></svg>"); background-size: 20px 20px; height: 20px; width: 20px; }
<input type="search" style="--color: #00a0a0;"> <input type="search" style="--color: #ee00ee;">
4条答案
按热度按时间smdncfj31#
你可能不再需要这个解决方案了,但我会把它放在这里,看看它是否对任何人都有帮助。
您不能直接更改清除按钮(x)的颜色(就我所尝试的而言),但我想出了一些技巧来更改按钮的外观。
基本上,我只是删除了默认的清除按钮,并将其替换为黑色清除按钮图像(我在这里使用了base64编码图像,您可以使用任何图像)。
b09cbbtk2#
我找不到只更改颜色的方法,但您可以使用以下内容覆盖“x”按钮样式:
目前,Webkit浏览器(Chrome、Safari)支持此功能。https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button
xn1cxnb43#
更改颜色的一个变通方法是使用
filter
,在我的例子中,我只是希望x
是黑色或灰色(而不是蓝色),所以我使用了black and white filter您可以使用invert filter使
x
在深色背景上变亮。kuarbcqp4#
现在是2023年,似乎没有人提出一个伟大的解决方案,只是改变X的颜色。不幸的是,似乎颜色不能直接改变,但你可以取代内置的X与自己的,并改变X的颜色。
出于我的需要,我希望颜色是基于生成的主题的动态的,所以只创建一种颜色的SVG不是一个足够好的解决方案。然而,您可以创建一个svg X并使用
-webit-mask-image
以您选择的颜色显示它。这似乎是其他一些人提出的一个更简单的通用解决方案。