AI生成的SVG在包含后不显示

时间:2012-10-02 10:04:18

标签: javascript html5 svg shapes

我有一个使用Adobe Illustrator生成的.svg文件。这些是SVG文件的结构:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="1068px" height="1671.49px" viewBox="0 0 1068 1671.49" enable-background="new 0 0 1068 1671.49" xml:space="preserve">
<g>
    <polygon fill="#C6C6C6" points="451.07,1979.34 451.07,1979.34 450.8,1979.17 448.72,1978.82 448.6,1978.71 448.34,1978.59 
        447.71,1978.36 448.01,1978.33 450.2,1978.3 452.53,1978.76 451.35,1979.08 451.73,1979.29     "/>
<!-- more polygon shapes -->
</g>
</svg>

然后我在我的.html文件中使用<embed>标记包含它。 HTML文件的结构:

<!DOCTYPE html>
<html>
    <head>
        <title>My Demo</title>
        <link rel="stylesheet" href="css/style.css" />

        <script src="js/jquery-1.8.2.min.js"></script>
        <script src="js/raphael-min.js"></script>
        <script src="js/script.js"></script>

    </head>
    <body>
        <div id="shape1"></div>
        <div id="shape2"></div>        
        <div id="shape3"></div>
        <div id="embed_svg">
            <embed src="my_svg_file.svg" type="image/svg+xml" />
        </div>
    </body>    
</html>

注意:

  • 我不认为这与浏览器支持有关,因为我使用raphael.js HTML5库绘制了3个HTML5形状,并且它们完美地工作。 (试过chrome和firefox)
  • 包含该文件无法正常工作。浏览器似乎解析它但它似乎似乎没有显示它。

1 个答案:

答案 0 :(得分:1)

形状中的坐标非常相似,因此多边形覆盖了viewBox区域的一小部分。

如果将<svg>元素的viewBox更改为viewBox =“448 1977 5 10”,则形状将显示为可见区域现在更接近多边形坐标,或者使多边形更大。