我正在尝试创建一个接收参数的SVG,但出于某种原因,它并没有应用它们......
我有以下SVG文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1" height="1"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1">
<defs>
<ref id="paramFill" param="color" default="#000000"/>
<ref id="paramOpacity" param="opacity" default="1"/>
</defs>
<polygon points="0,0 1,0 1,1 0,1"
style="fill:url(#paramFill);fill-opacity:url(#paramOpacity);fill-rule:evenodd;" />
</svg>
调用SVG文件的PHP看起来像这样,但是当页面上显示图像时,我得到一个全黑图像。为什么不使用我的参数?只应创建两种颜色:#9999FF
或#FFFFFF
为什么使用默认颜色?
<?php
// Inside a loop:
$color = ($chi == $i && $chj == $j) ? "#9999FF" : "#FFFFFF";
echo "<td style='background-image: url(/Websites/test.org/images/bg.svg?color=$color);'></td>";
答案 0 :(得分:1)
你正在将#
填入网址。 #
(您的颜色值)之后的任何内容都不会被视为颜色值 - 它将被视为页面锚点引用。
... url(/.....?color=#9999ff); ...
^---anchor
将提取浏览器
... url(/....?color=)
如果它是一个HTML页面,那么它会尝试向下滚动到<a name="9999ff">
,这在svg上是不可能的。
至少尝试urlencode()
:
...?color=%239999ff
^^^---url-encoded #