html - webkit 上 HTML 元素的 SVG 掩码

标签 html css svg

被这个问题困扰了一段时间..

我正在尝试在 HTML 元素上应用 SVG 掩码,我需要它是圆的笔划(而不是填充),以便将它用于某些进度圆。

简化版:

#mask-me{
  width: 120px;
  height: 120px;
  mask: url('#mask');
  mask-mode:alpha;
  background:red;
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="0">
  <defs>
    <mask id="mask">
      <circle cx="60" cy="60" r="48" fill="transparent" stroke="#FFFFFF" stroke-width="12"	stroke-dasharray="339.292" stroke-dashoffset="175" ></circle>
    </mask>
  </defs>
</svg>

<div id="mask-me"></div>

这在 Firefox 上有效,而在 Chrome 中被完全忽略的任何已知原因?尝试了各种不同的声明、浏览器前缀等...我是否遗漏了一些明显的东西?

最佳答案

虽然不是很方便,但是可以将 SVG 转换为数据 URI,然后将其用作 mask-image,而不是使用内联 SVG 并引用其中的一部分。直接:

#mask-me {
  width: 120px;
  height: 120px;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' height='120' width='120'><circle cx='60' cy='60' r='48' fill='none' stroke='black' stroke-width='12' stroke-dasharray='339.292' stroke-dashoffset='175'></circle></svg>");
  background:red;
}
<div id="mask-me"></div>

Firefox 对其接受的引号类型和数据 URI 格式很挑剔,但这种形式适用于当前的 Chrome 和 Firefox。

关于html - webkit 上 HTML 元素的 SVG 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48467995/

相关文章:

javascript - 将文本区域中的内容上传到文件夹

javascript - 单击后按钮保持焦点

javascript - 如何在底部滚动上激活链接

javascript - 透明背景动画时清除类型错误

javascript - 溢出和调整大小问题

css - PDF 到 HTML 转换

html - 使用html代码将mysql表导出到csv

javascript - 更改特定 GIF 帧的背景

javascript - 为什么我设置的 d3 笔画样式在调试器中显示为空字符串,但在屏幕上显示为红色?如何访问笔触样式?

html - 了解如何在简单的 SVG 中创建蜡烛火焰