相关疑难解决方法(0)

在包含SVG标记元素的页面上使用基本标记无法呈现标记

尝试在基于SVG的可视化中使用SVG标记元素时遇到了问题.我正在将我的更改添加到Web应用程序中,该应用程序恰好在每个页面上都包含一个基本标记,因此对CSS文件,javascript文件等的任何引用都可以是相对的.

我在下面有一些示例代码可以重现该问题.有一个line元素,并定义了一个标记元素.标记元素由其"marker-end"属性中的行引用,通过uri和id of marker.没有基本标签,箭头显示正常.使用基本标记时,未显示.原因是因为基本标记改变了浏览器解析URL的方式..即使是在行的marker-end属性中指定的基于简单id的url.

有没有办法解决这个问题而不必删除基本标签?

我无法真正删除它,因为它的使用在我正在研究的产品中相当根深蒂固.我需要为我的webapp支持Firefox,Chrome和IE9 +.Firefox和Chrome都会产生这个问题.IE工作正常(即箭头标记显示).

<html>
    <head>
    <base href=".">
    <style>
    .link { stroke: #999; stroke-opacity: .6; }
    marker#arrow { fill: black; }
    </style>
</head>
<body>
    <svg width="100%" height="100%">
        <defs>
            <marker id="arrow" viewBox="0 -5 10 10" refX="0" refY="0" markerWidth="20" markerHeight="20" orient="auto">
                <path d="M0,-5L10,0L0,5"></path>
            </marker>
        </defs>
        <line x1="100" y1="100" x2="333" y2="333" marker-start="url(#arrow)" class="link"></line>
    </svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html firefox svg google-chrome base-url

46
推荐指数
4
解决办法
1万
查看次数

元素顺序对于内联SVG是否重要?

在Google Chrome 24中,如果元素引用的<use>元素稍后在文档中定义,则不会呈现该元素.我没有注意到元素文档中与元素顺序相关的任何use内容.

这种行为是否未定义,并且不应期望在浏览器中保持一致或只是Chrome中的错误?

下面是一个例子(从这个问题稍作修改).蓝色圆圈呈现出预期的红色,而不是如此.Firefox 17和IE 9按照我的预期呈现两个圆圈.当相同的内容被引用为外部时<img />,两个圆圈也会呈现.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Chrome use-tag bug?</title>
</head>
<body>
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200">
        <defs>
            <g id="test2">
                <circle cx="50" cy="50" r="25" fill="blue"/>
            </g>
        </defs>

        <g>
            <rect x="0.5" y="0.5" width="199" height="199" stroke="black" fill="none"/>
            <use xlink:href="#test1" x="0" y="0"/>
            <use xlink:href="#test2" x="0" y="0"/>
        </g>

        <defs>
            <g id="test1">
                <circle cx="100" cy="100" r="25" fill="red"/>
            </g>
        </defs>
    </svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

更新 …

svg google-chrome

10
推荐指数
1
解决办法
1503
查看次数

Safari 6 svg标签使用问题

链接:http://jsfiddle.net/xkpeD/

要不就

<svg width="300px" height="300px" version="1.1" xmlns="http://www.w3.org/2000/svg"    xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="20" fill="pink" fill-opacity="0.5"/>
  <use xlink:href="#:example" x="20" y="20"/>
  <defs>
    <circle id=":example" cx="50" cy="50" r="20" fill="pink" fill-opacity="0.5"/>
  </defs>
</svg>?
Run Code Online (Sandbox Code Playgroud)

它在所有浏览器(IE9,Chrome,Firefox,Safari 5.1)中都显示正常,但在新的Safari 6中,只渲染了1个圆圈.似乎所有<use>标签都没有在Safari 6中呈现.

有什么帮助吗?

safari svg safari6

6
推荐指数
2
解决办法
4446
查看次数

标签 统计

svg ×3

google-chrome ×2

base-url ×1

firefox ×1

html ×1

safari ×1

safari6 ×1