【问题标题】:how to scale `clip-path: path`?如何缩放“剪辑路径:路径”?
【发布时间】:2021-11-28 04:50:51
【问题描述】:

我有一个剪切路径,可以剪切某种形状。问题是它设置在绝对坐标中。如果我把 % 放在那里,它就会中断。如何缩放使其适合画布边框并与画布一起拉伸?

.canvas {
    width: 200px;
    height: 200px;
    background-color: black;
}

.clip {
    width: 100%;
    height: 100%;

    background-color: orange;
    content: "";
    clip-path: path('M 100 50 A 75 75 0 0 1 0 50 A 75 75 0 0 1 100 50 z');
 }
<div class="canvas"><div class="clip">sadf</div></div>

【问题讨论】:

标签: css svg clip-path


【解决方案1】:

我发现的一种方法是将剪辑路径移动到 SVG 元素并在 CSS 中引用它。这样路径可以设置clipPathUnits="objectBoundingBox",这是相对于元素的大小。

.canvas {
    width: 200px;
    height: 200px;
    background-color: black;
}

.clip {
    width: 100%;
    height: 100%;

    background-color: orange;
    content: "";
    clip-path: url(#eyePath);
 }
<div class="canvas"><div class="clip">sadf</div></div>
<svg viewBox="0 0 100 100" width="100" height="100">
  <clipPath id="eyePath" clipPathUnits="objectBoundingBox">
    <path d="M 1 0.5 A .75 .75 0 0 1 0 .50 A .75 .75 0 0 1 1 0.5 z" />
  </clipPath>
</svg>

还有几个问题:

  • SVG 位于 HTML 而不是 CSS。
  • SVG 元素在 HTML 中占据空间,它应该被隐藏。

一个很好的解决方案是将 SVG 移动到另一个文件并引用路径,例如(来源 - MDN cip-path

clip-path: url(eye.svg#c1);

【讨论】:

    【解决方案2】:

    您可以使用另一个svg 并将clipPathUnits="objectBoundingBox" 添加到其中

    更多信息here

    .canvas {
      width: 200px;
      height: 200px;
      background-color: black;
    }
    
    .clip {
      width: 100%;
      height: 100%;
      background-color: orange;
      clip-path: url(#path);
    }
    <svg height="0" width="0">
      <defs>
        <clipPath id="path"  clipPathUnits="objectBoundingBox">
          <path d="M 0,0.5
               Q 0.50,0.15 1,0.50
               Q 0.50,0.85 0,0.50">
          </path>
        </clipPath>
      </defs>
    </svg>
    <div class="canvas">
      <div class="clip">sadf</div>
    </div>

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 2018-07-18
      • 2021-02-25
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2017-05-08
      • 2016-09-18
      相关资源
      最近更新 更多