10

我正在使用 CSS 过滤器在浏览器中动态修改图像。这些在 Internet Explorer 中完美运行,但在 Firefox 中不受支持。

有谁知道 Firefox 对应的 CSS 过滤器是什么?一个可以跨浏览器(Safari、WebKit、Firefox 等)工作的答案将是首选。

<style type="text/css">
    .CSSClassName {filter:Invert;}
    .CSSClassName {filter:Xray;}
    .CSSClassName {filter:Gray;}
    .CSSClassName {filter:FlipV;}
</style>

更新:我知道过滤器是 IE 特有的功能。Firefox 支持的这些是否有任何等价物?

4

9 回答 9

6

请检查Nihilogic Javascript 图像效果库

  • 很好地支持 IE 和 Fx
  • 有很多作用

您可以在CVI 项目中找到许多其他效果:

祝你好运

于 2008-10-01T06:41:26.540 回答
4

你能给我们一个具体的例子来说明你到底想要做什么吗?你可能会得到更少的“你的浏览器”回复和更多的“尝试这种不同的方法怎么样?” 那些。

通常 CSS 用于控制 HTML 内容的外观和感觉,而不是添加效果或以巧妙的方式编辑图像。您尝试做的事情可能使用 javascript,但面向行为的脚本可能仍然不太适合您想要做的那种调整(尽管这样事情在 CSS 中是一个有趣且非常低效的冒险/JS 愚蠢)。

我无法想象您需要客户端实时执行图像调整的场景。您可以在服务器端修改图像,并使用您的 CSS 或可能的 Javascript 简单地引用这些修改后的版本,具体取决于您正在做什么。ImageMagick是一个很棒的小命令行工具,可用于您需要的所有图像效果,并且非常易于单独使用或在您选择的服务器端语言中使用。或者,如果您使用的是 PHP,我相信PHP 的 GD 库非常受欢迎。

于 2008-10-01T06:32:32.960 回答
2

在其他浏览器中没有等价物。最接近的方法是使用像 Canvas 这样的图形库并处理其中的图像,但您必须自己编写操作,而且它们需要 JavaScript。


filter是一个仅限 IE 的功能——它在任何其他浏览器中都不可用。

于 2008-10-01T03:32:37.370 回答
2

应用于 HTML 内容的 SVG 过滤器

仅适用于 Firefox 3.1 及更高版本,但我认为 Safari 正朝着相同的方向发展。

于 2009-02-04T00:23:49.250 回答
0

据我所知没有。过滤器是 IE 唯一的东西,我认为没有任何其他浏览器具有类似的功能。

您需要什么特定的用例?

于 2008-10-01T04:25:35.337 回答
0

恐怕您对大多数跨浏览器filter类型的功能都很不走运。单靠 CSS 不会让你做大部分这些事情。例如,没有办法仅使用 CSS 来反转图像跨浏览器。您将必须拥有图像的两个不同副本(一个倒置),或者您可以尝试使用 Javascript 或者以完全不同的方式进行处理,但没有简单的解决方案仅在 CSS 中。

于 2008-10-01T04:27:57.360 回答
0

有过滤器,例如 SVG 中的 Gaussian Blur 等,除 IE 外,大多数浏览器都原生支持该过滤器。

在这里进行纯粹的思想实验,您可以使用 javascript 动态地将图像包装在 SVG 对象中,并尝试对它们应用过滤器。

我怀疑这是否适用于背景图像,尽管可能有很多巧妙的定位它可以工作。

这不太可能是一个现实的解决方案。如果您不想永久修改源图像,Rudi有最好的答案,使用服务器端工具即时应用转换(或缓存性能)将是最好的跨浏览器解决方案。

于 2008-10-01T07:47:58.660 回答
0

这是一个非常古老的问题,但 css 已更新为现在支持过滤器。阅读更多关于它的信息

https://developer.mozilla.org/en-US/docs/Web/CSS/filter

句法

使用函数,使用以下内容:

filter: <filter-function> [<filter-function>]* | none

要引用 SVG 元素,请使用以下内容:

filter: url(svg-url#element-id)
于 2014-09-28T18:38:47.673 回答
-2

不是真的,希望永远不会有。它不是 Web 标准 CSS 功能,因为您使用 CSS 来格式化网页,而不是浏览器本身。其他网页设计师和开发人员认为他们应该按照自己的意愿设计我的浏览器并这样做的那一天就是我停止访问他们的页面的那一天(我是作为前端网络人说的)。

于 2008-10-01T04:32:47.053 回答