55

我正在尝试将此 SVG 代码的背景更改为透明但没有成功。我是 SVG 新手,不知何故在谷歌上找不到解决方案;有人可以帮忙吗?

演示:http: //jsfiddle.net/kougiland/SzfSJ/1/

<svg xmlns="http://www.w3.org/2000/svg" width="300px" height="100px" viewBox="0 0 300 100">
  <rect x="0" y="0" width="300" height="100" stroke="transparent" stroke-width="1" />
  <circle cx="0" cy="50" r="15" fill="blue" stroke="transparent" stroke-width="1">
    <animateMotion path="M 0 0 H 300 Z" dur="3s" repeatCount="indefinite" />
  </circle>

  <circle id="rotatingBall" cx="0" cy="50" r="15" fill="green" stroke="transparent" stroke-width="1" opacity="0.8"></circle>
  <animateTransform xlink:href="#rotatingBall" attributeName="transform" begin="0s" dur="2s" type="rotate" from="0 20 20" to="360 100 60" repeatCount="indefinite" />
</svg>

4

3 回答 3

71

透明不是 SVG 规范的一部分,尽管 Firefox 等许多 UA 确实支持它。SVG 方式是将 设置strokenone,或者将 设置stroke-opacity0

您也没有为<rect>元素设置任何填充值,默认值为黑色。对于要添加的透明矩形fill="none"

于 2013-09-02T20:34:11.240 回答
6

在矩形内,您可以使用 fill-opacity="0.5"

<rect x="0" y="0" width="300" height="100" stroke="transparent" stroke-width="1" fill="green" fill-opacity="0.5" />
于 2019-07-20T08:05:25.873 回答
0

假设您有一个具有某种颜色的背景,例如#231f20,您真的想摆脱它。例如,您的公司/标语的名称是白色的,即#ffffff

您的背景应该采用与此类似的格式,只需从.svg文件中删除该行:

<path id="path12" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 H 2048 V 350 H 0 Z" />

其他路径保持不变,这将在此特定示例中绘制白色。其中之一可能如下所示:

<g transform="translate(87.6235,66.3594)" id="g22">
  <path id="path24" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 h 16.497 c 36.293,0 59.458,19.135 67.356,64.009 8.71,49.49 -5.134,62.688 -46.707,62.688 H 22.299 Z m -87.624,-55.432 41.812,237.559 H 58.451 c 76.546,0 117.787,-35.633 104.023,-113.83 C 146.737,-21.117 90.875,-55.432 14.659,-55.432 Z" />
</g>
于 2020-07-30T08:34:53.270 回答