html - 用透明度隐藏部分形状?

标签 html css svg

有没有一种方法可以隐藏您在 SVG 中绘制的部分内容,而无需用其他形状覆盖它?

例如,我正在尝试创建一个空圆,其中从一个部分切出一个切片。我能够实现我想要的外观,但图像在我想要隐藏的切片上不透明。如果我更改其所在页面的背景颜色,我也必须更改矩形的颜色。

我研究过 SVG 裁剪,但看起来这是为了隐藏区域之外的内容,而我正在寻找相反的方法。我是不是用错了方法?

<svg width="60" height="60">
  <circle cx="30" cy="30" r="20" stroke-width="8" style="fill:none;stroke:#000;" />
  <rect height="8" width="22" y="26" fill="lightblue"/>
</svg>

最佳答案

我要找的是 SVG mask

我必须在由两部分组成的圆上创建一个蒙版:

  1. 覆盖整个图像的白色矩形(白色:显示)
  2. 我想隐藏的黑色矩形 (black: hide)

代码如下所示。

<svg width="60" height="60">
  <defs>
    <mask id="slice">
      <rect width="100%" height="100%" fill="white"/>
      <rect height="8" width="22" y="26" fill="black"/>
    </mask>
  </defs>
  <circle cx="30" cy="30" r="20" stroke-width="8" style="fill:none;stroke:#000;" mask="url(#slice)"/>
</svg>

关于html - 用透明度隐藏部分形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679888/

相关文章:

jquery - 如何使用 Paperclip 立即显示上传图像的缩略图?

javascript - D3js 将 fill 设置为 none 以编程方式影响 onClick 事件

graphics - 如何动态调整svg中的文本大小?

css - css 中图形边框的简单布局?如何停止未对齐的边框图形?

html - 标题+内容在不滚动的情况下达到 100% 高度的最佳解决方案是什么

javascript - 如何在导航单击按钮上保持打开 Firefox 扩展弹出窗口

javascript - 第一次单击按钮时隐藏文本不可见

javascript - HTML5 必填隐藏文件字段-反馈位置

firefox - chrome和firefox之间的SVG模式不一致

javascript - 直接在服务器上运行的文本编辑器? (阿普塔纳?)