你可能听说过 CSS 滤镜?你可以通过 CSS 将它们应用于任何元素,例如
.apply-css-filter {
-webkit-filter: grayscale(0.5);
filter: grayscale(0.5);
}
你甚至可以将它们应用于 HTML 元素或 SVG 元素。
但是,你也可以在 SVG 中定义滤镜,并且这样做时有更多的选择。这是一个定义示例
<svg>
<defs>
<filter id="pictureFilter">
<feMorphology operator="erode" radius="2" />
</filter>
</defs>
</svg>
然后,你可以直接在 SVG 中将其应用于元素,例如
<svg>
<!-- could be anything -->
<image filter="url(#pictureFilter)" xlink:href="image.jpg" width="100%" height="100%" x="0" y="0" />
</svg>
或者,通过 CSS 引用 ID 来应用,例如
.apply-svg-filter {
-webkit-filter: url(#pictureFilter);
filter: url(#pictureFilter);
}
有很多 SVG 滤镜。一些常见的,如模糊,以及一些奇怪的滤镜,例如用于绘制效果。这里有 规范。
指向 http://ie.microsoft.com/testdrive/graphics/hands-on-css3/hands-on_svg-filter-effects.htm 的链接已经失效。
我在 IE 中尝试将一些 SVG 图标灰度化,但遇到了很多问题。我尝试了很多简单的方法,但似乎都不起作用。
嗨,Mike!是的,那个链接现在已经过时了,因为 Edge 已经取代了 IE。你可以在这里找到该页面的存档:https://testdrive-archive.azurewebsites.net/Graphics/hands-on-css3/hands-on_svg-filter-effects.htm