html - 查看 clip-path 的反区域

标签 html svg clip

这是一个在矩形内显示圆形区域的简单 fiddle https://jsfiddle.net/3v6yhf0m/

svg {
  border: 3px dashed #999;
}
svg > rect:hover {
  fill: green;
}
<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <clipPath id="myClip">
      <circle cx="30" cy="30" r="20"/>
    </clipPath>
  </defs>

  <rect x="10" y="10" width="100" height="100" fill="blue"
      clip-path="url(#myClip)"/>
</svg>

但我想使用 clip-path 查看位于圆外的矩形区域 https://jsfiddle.net/yhbeevya/

svg {
  border: 3px dashed #999;background-color:blue;fill:blue;
}
svg > rect:hover {
  fill: green;
}
<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <clipPath id="myClip">
      <circle cx="30" cy="30" r="20"/>
    </clipPath>
  </defs>

  <rect x="10" y="10" width="100" height="100" fill="white"
      clip-path="url(#myClip)"/>
</svg>

请分享你的想法

最佳答案

改用面具。面具的黑色部分显示背景,白色显示形状本身。

svg {
  border: 3px dashed #999;background-color:blue;fill:blue;
}
svg > rect:hover {
  fill: green;
}
<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <mask id="myMask">
      <rect width="100%" height="100%" fill="white"/>
      <circle cx="30" cy="30" r="20" fill="black"/>
    </mask>
  </defs>

  <rect x="10" y="10" width="100" height="100" fill="white"
      mask="url(#myMask)"/>
</svg>

关于html - 查看 clip-path 的反区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44106814/

相关文章:

css - 无法找到一种方法来自动化/咕噜 CSS Sprite 创建,支持 PNG 源文件的悬停效果

javascript - 将 SVG 路径转换为绝对命令

Java Sound Clip 多次播放后无法播放

javascript - JQuery 单击和悬停功能无法正常工作

JavaScript、HTML : Loop placeholder name with multiple values

svg - IE10 裁剪 SVG 而不是调整大小

javascript - 带有描边的 SVG 蒙版

java - 如何剪线?

javascript - 如何在html中的输入文本框中打印日期

javascript - 我应该使用 CSS 还是 JS 让我的容器向右滑动并同时淡入淡出?