如何在网页中使用.svg文件?

我想知道如何才能真正使用.svg文件在网页中?

请参阅svgweb快速入门和svgweb项目主页的东西,适用于所有浏览器,包括IE浏览器(需要Flash插件)。

有很多方法可以包含现有的svg文件:

  • <img src="your.svg"/>
  • <object data="your.svg"/>
  • <iframe src="your.svg"/>
  • <embed src="your.svg"/>
  • <div style="background:url(your.svg)">...</div>

如果您只想放置SVG图像(如徽标或静态图),则只需要小心地为旧版Internet Explorer(即版本8和更早版本)提供回退。

我find的最好和最简单的方法是使用.png或.jpg作为你的后备,使用正常的img标签放置。 然后,将img标记包裹在对象标记中,使用data属性放置SVG。

 <object data="/path-to/your-svg-image.svg" type="image/svg+xml"> <img src="/path-to/your-fallback-image.png" /> </object> 

如果浏览器不理解SVG,img后备只会被加载和使用。

http://www.w3schools.com/svg/svg_inhtml.asp

最好的例子:

 <embed src="rect.svg" width="300" height="100" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" /> 

Raphaël-JavaScript库 。 很好的JavaScript库,使用SVG,并给你一个大范围的影响!

还支持大多数浏览器,包括IE

我build议把svg内嵌到你的文档中(html5技术)。 只需打开你的SVG文件,复制SVG标签和它的一切,然后粘贴到你的HTML文件。

 <html> <body> <svg></svg> </body> </html> 

它的优点是可以使用css来设置样式,比如改变填充颜色或者像滤镜一样对模糊进行应用。 另一个好处是,如果你的文件在你的文档里面,你可以保存一个用于获取svg文件的http请求。

如果你想要例如使用CSS来改变它的位置,那么你必须把CSS放在一个style属性中。 在外部CSS文件中的样式将不会在大多数浏览器中应用,因为这是一个安全限制。 例如:

 <svg id="mySVG" style="position: absolute; top: 200px; left: 200px;"></svg> 

所有浏览器都支持此技术,除了IE8及以下版本以及android 2.3浏览器及以下版本。

详细内容请阅读SVG内联章节:

  • css-tricks.com使用SVG
  • 在HTML简介中的developer.mozilla.org SVG

如果你不想把它内联在你的页面上,那么最好的select似乎是对象标签,并避免使用embedded标签。

阅读这个关于对象vsembedded与img标签的更多细节:

  • 如何将可缩放vectorgraphics添加到您的网页

卡斯帕的方法是正确的。 不过,我会将回退移到CSS,因为您可能想要将一些样式应用于svg文件本身…

 <object data="/path-to/your-svg-image.svg" type="image/svg+xml" class="logo"> </object> 

CSS

 .no-svg .logo { width: 99px; height: 99px; background-image: url(/path-to/your-png-image.png); }` 

我想同意“code-zoop”的答案。 虽然这在技术上不能回答你的问题,但也可能是一个解决scheme:直接在HTML中input相关数据。 直接作为一个svg元素,或通过使用Raphaël-JS。

来自w3c-schools:

SVG都支持在Firefox,Internet Explorer 9,Google Chrome,Opera和Safari中

 <html> <body> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg> </body> </html> 

(报价结束)

在盒子外面思考更多,取决于你想如何使用它,你也可以把你的单色graphics放在一个webfont中 。 (请参阅iconmoon.io)