【问题标题】:SVG - Css filter to blur some elementsSVG - 用于模糊某些元素的 Css 过滤器
【发布时间】:2017-06-13 03:34:23
【问题描述】:

我正在尝试将 CSS 过滤器模糊应用于某些元素,但不知何故这不起作用。

这是 jsfiddle 中的一个示例: http://jsfiddle.net/kuyraypj/

我已经应用了以下 css,但我的“.blurred”圈子一点也不模糊。 HTML:

<svg width="500px" height="500px">
    <circle class="blurred" cx="100" cy="100" r="50" fill="red"></circle>    
    <circle cx="220" cy="100" r="50" fill="red"></circle>
</svg>

CSS:

svg circle.blurred {
  fill: green;
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}

有没有办法将 CSS3 过滤器应用于某些 svg 元素,或者还有其他方法吗?

非常感谢

【问题讨论】:

  • 使用 SVG 过滤器。 Example for Blur
  • 谢谢 - 随意添加它作为答案,以便我可以验证它?你知道为什么它不能使用 CSS 过滤器吗?

标签: css svg


【解决方案1】:

这是一个与您的 CSS 描述的滤镜效果相同的 SVG:

<svg width="500px" height="200px">
    <defs>
        <filter id="blur">
            <feGaussianBlur stdDeviation="5" />
        </filter>
    </defs>
    <circle cx="100" cy="100" r="50" fill="green" filter="url(#blur)" ></circle>
    <circle cx="220" cy="100" r="50" fill="red"></circle>
</svg>

您可以使用上面 sn-p 中的filter 属性,也可以使用 CSS:

svg circle.blurred {
    filter: url(#blur);
}
<svg width="500px" height="200px">
    <defs>
        <filter id="blur">
            <feGaussianBlur stdDeviation="5" />
        </filter>
    </defs>
    <circle class="blurred" cx="100" cy="100" r="50" fill="green"></circle>
    <circle cx="220" cy="100" r="50" fill="red"></circle>
</svg>

【讨论】:

    【解决方案2】:

    【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2018-06-05
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 2016-10-07
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多