Html 如何使用SVG过滤器和<;基地>;结合
下面的代码在主页上工作,其中“页面URL”=“基本URL” 但在其他页面上失败Html 如何使用SVG过滤器和<;基地>;结合,html,google-chrome,svg,filter,blur,Html,Google Chrome,Svg,Filter,Blur,下面的代码在主页上工作,其中“页面URL”=“基本URL” 但在其他页面上失败 <svg> <filter id="blur"> <feGaussianBlur stdDeviation="5"></feGaussianBlur> </filter> <image id="svg-image" xmlns:href="http://x.com/image.jpg" filter
<svg>
<filter id="blur">
<feGaussianBlur stdDeviation="5"></feGaussianBlur>
</filter>
<image id="svg-image" xmlns:href="http://x.com/image.jpg"
filter="url(#blur)">
</image>
</svg>
有没有办法从外部svg文件中引用“仅过滤器”
例如:
1.外部文件@()
2.HTML文档@()
在
url()中使用文件名应该可以这样做。尤其是在引用当前文件时。这将解决
的问题
但是,并非所有浏览器都支持指向另一个文件(目前)
顺便说一句,您的xmlns:xlink
属性是错误的。那应该是xlink:hef=”“
不要!可能的
(正如@RobertLongson和@PaulLeBeau所建议的)实际上它是xmlns:href=“”,最初,我将它与w3参考链接混合在一起,然后移除以使它看起来更小。不,它不起作用。我对(问题?)进行了mod_重写,但它甚至不能与绝对引用一起工作。svg过滤器定义有问题吗?@user3380710没有,正如回答中所述,并非所有浏览器都支持它。例如Firefox就支持,但Chrome只支持一些过滤器,我不知道是哪一个,也许高斯模糊不在其中。您最好停止使用
标记。就标题而言,可能最好不要这样做。@RobertLongson我的困境是SVG只在一个地方使用(但必要),而BASE在整个站点上使用。所以,如果可能的话,我只是想有一个解决办法?停止使用base或过滤器(或剪辑路径、标记或遮罩)或停止使用Chrome(或IE、Safari或Opera)。@RobertLongson你真是太好了,谢谢!另一种选择是将所有SVG移动到单个独立文件中,然后通过
或
标记将其嵌入,以便
标记位于不同的文档中,然后不会影响SVG。
<svg>
<filter id="blur">
<feGaussianBlur stdDeviation="5"></feGaussianBlur>
</filter>
</svg>
<svg>
<image id="svg-image" xmlns:href="http://x.com/image.jpg"
filter="url(/somewhere/external.svg#blur)">
</image>
</svg>