相关疑难解决方法(0)

如何仅使用CSS过滤器将黑色转换为任何给定的颜色

我的问题是:给定目标RGB颜色,#000使用CSS滤镜将黑色()重新着色为该颜色的公式是什么?

为了接受答案,它需要提供一个函数(以任何语言)接受目标颜色作为参数并返回相应的CSS filter字符串.

对此的上下文是需要在a内重新着色SVG background-image.在这种情况下,它是支持KaTeX中的某些TeX数学特性:https: //github.com/Khan/KaTeX/issues/587.

如果目标颜色为#ffff00(黄色),则一个正确的解决方案是:

filter: invert(100%) sepia() saturate(10000%) hue-rotate(0deg)
Run Code Online (Sandbox Code Playgroud)

(演示)

非目标

  • 动画.
  • 非CSS过滤器解决方案.
  • 从黑色以外的颜色开始.
  • 关心黑色以外的颜色会发生什么.

结果到目前为止

  • 强力搜索固定过滤器列表的参数:https
    ://stackoverflow.com/a/43959856/181228缺点:效率低下,只生成一些16,777,216种可能的颜色(676,248 hueRotateStep=1).

  • 使用SPSA的更快的搜索解决方案:https : //stackoverflow.com/a/43960991/181228 Bounty奖励

  • 一个drop-shadow解决方案: /sf/answers/3077189741/
    缺点:不上边缘运行.需要非filterCSS更改和次要HTML更改.

您仍然可以通过提交非暴力解决方案获得接受的答案!

资源

javascript css math algebra css-filters

91
推荐指数
6
解决办法
1万
查看次数

删除子元素上的 CSS 过滤器

我的 css 代码有问题。

如您所见,我对 li 元素进行了过滤,但它覆盖了其他元素。我需要使其他两个元素没有过滤器:

有没有可能这样做。

.main {
  width:300px;
  height:300px;
  background-color:blue;
  list-style:none;
}

.button {
    position: absolute;
    top: 35% ;
    height: 30px;
    width: 120px;
    display: none;
    z-index: 99;
    background-color:black;
    color:white;
}

.icon {
    width: 30px;
    position: absolute;
    z-index: 99;
    display: none;
    width:100px;
}

.main:hover > .button {
    display: block;
    filter: none;
}

.main:hover > .icon {
    display: block;
    filter: none;
}

.main:hover {
    filter: brightness(50%);
    transition: 0.5s;
}
Run Code Online (Sandbox Code Playgroud)
<li class="main">
<img src="https://help.seesaw.me/hc/en-us/article_attachments/204081043/bear.png" class="icon" />
<a class="button" href="#">Button</a>
</li>
Run Code Online (Sandbox Code Playgroud)

css

6
推荐指数
2
解决办法
6853
查看次数

如何模拟元素的不透明效果而不使其透明?

我希望 div 具有filter:opacity(0.5)白色背景上的“灰色”外观,但我不想真正使其透明。我该怎么做呢?我知道一个解决方案就是在其后面放置另一个带有白色背景的元素,但我正在寻找一种仅具有 CSS 滤镜效果的更简单的解决方案。

css css-filters

5
推荐指数
1
解决办法
899
查看次数

为什么“filter: invert(1)hue-rotate(180deg)”会将红色变成桃粉色?

在CSS中,当你应用

滤镜:反转(1) 色调旋转(180deg)

对于图像来说,红色变成桃红色。

为什么会这样?如何使用 CSS 反转图像并且仍然使红色看起来像红色?

例子:

RGB图像正常

应用了相同的图像filter: invert(1) hue-rotate(180deg)

RGB 图像反转且色调旋转 180 度


更新:

在最初的答案中建议将上述过滤器应用于元素html,然后也将其应用于图像。颜色看起来还是不一样。结果如下:

RGB 图像,过滤器应用于 HTML 元素和图像

css user-interface colors image-processing css-filters

5
推荐指数
1
解决办法
3231
查看次数