我的问题是:给定一个目标RGB颜色,什么是只使用CSS滤镜将黑色( #000 )重新着色成该颜色的公式? 对于被接受的答案,它需要提供一个接受目标颜色作为参数的函数(以任何语言),并返回相应的CSS filterstring。 上下文是需要在background-image重新着色SVG。 在这种情况下,它将支持KaTeX中的某些TeXmath特性: https : //github.com/Khan/KaTeX/issues/587 。 例 如果目标颜色是#ffff00 (黄色),则正确的解决scheme是: filter: invert(100%) sepia() saturate(10000%) hue-rotate(0deg) ( 演示 ) 非目标 animation。 非CSSfilter解决scheme。 从黑色以外的颜色开始。 关心黑色以外的颜色。 目前为止的结果 蛮力search固定筛选器列表的参数: https : //stackoverflow.com/a/43959856/181228 缺点:效率低下,只产生一些16,777,216种可能的颜色(676,248, hueRotateStep=1 )。 更快的search解决scheme使用SPSA : https : //stackoverflow.com/a/43960991/181228 赏金颁发 drop-shadow解决scheme: https : //stackoverflow.com/a/43959853/181228 缺点:不能在Edge上工作。 需要非filter CSS更改和小的HTML更改。 你仍然可以通过提交一个非暴力的解决scheme得到一个接受的答案! 资源 如何计算hue-rotate和sepia : https : //stackoverflow.com/a/29521147/181228示例Ruby实现: […]