html - SVG Mask 不适用于插画师生成的 SVG(所有浏览器)

标签 html css svg masking

太对了 -

我有两个 SVG,第一个是蓝色圆圈,第二个是美国 map 。 (均在 Illustrator 中创建)

我希望 map 成为蓝球的掩码。

最终目标是让蓝色球充满 map 。

但首先我需要使这些蒙版起作用,但我做不到,我也尝试了剪切路径,但该解决方案仅适用于 FF,不适用于在 Illustrator 中创建的任何文件。

我已经接近让面具起作用了,这只适用于 Chrome。

我正在使用 .class {clip-path: url(#clipping);} 方法。

http://codepen.io/CiderZombie/pen/EPzyeN

在该示例中,圆圈是 mask ,当我切换 map 时,圆圈会断开。

最佳答案

HTML 元素的裁剪和屏蔽在浏览器中仍然不一致且部分支持。

Dirk Schultz's article涵盖得很好。

如果您想要可靠的裁剪和 mask ,您可能只能使用 mask SVG 元素。

<svg width="100" height="100">
  
  <defs>
    <clipPath id="usmap">
      <path d="m8 18 62 6 9 10 l 19 -12 1 6 -4 22 -10 17 7 15 -2 1 -13 -14 -18 -1 -12 13 -13 -16 -19 -1 -14 -21 1 -16z"/>
    </clipPath>
  </defs>

  <circle cx="50" cy="50" r="50" fill="#DF090C" clip-path="url(#usmap)"/>
  <circle cx="50" cy="50" r="30" fill="blue" clip-path="url(#usmap)"/>
</svg>

关于html - SVG Mask 不适用于插画师生成的 SVG(所有浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35491850/

相关文章:

javascript - 为单个父单击显示/隐藏多个子类(Jquery)

javascript - D3js 从数组而不是文件中获取数据

html - Linear Gradient SVG 3种颜色增加中间颜色的宽度

javascript - SVG 路径不显示

html - 如何更改 Bootstrap 中表单控件弹出窗口中必填字段的默认消息?

html - 显示具有颜色和背景的 SVG 圆圈

javascript - 我可以禁用 dgrid 中的排序以获得性能提升吗?

javascript - 页面底部的粘性页脚问题

css - 是否可以让 webpack 捆绑 CSS 而无需在我的入口 js 中导入 css?

css - Sass: "&"和 "@at-root"不能混用?