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

发布于 2024-08-17 02:57:50 字数 30 浏览 7 评论 0 原文

我想知道如何在网页中实际使用 .svg 文件?

I want to know how can one actually use a .svg file In a web page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

云醉月微眠 2024-08-24 02:57:50

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

包含现有 svg 文件的方法有多种:

  • <
  • object data="your.svg"/> >
  • embed src="your.svg"/>
  • ...

See svgweb quickstart and the svgweb project homepage for something that works in all browsers including IE (requires flash plugin).

There are many ways to include an existing svg file:

  • <img src="your.svg"/>
  • <object data="your.svg"/>
  • <iframe src="your.svg"/>
  • <embed src="your.svg"/>
  • <div style="background:url(your.svg)">...</div>
各自安好 2024-08-24 02:57:50

如果您只想放置 SVG 图像(例如徽标或静态图),则只需小心为旧版本的 Internet Explorer(即版本 8 及更早版本)提供后备即可。

我发现的最好和最简单的方法是使用 .png 或 .jpg 作为后备,使用普通的 img 标签放置。然后,您可以将 img 标签包装在 object 标签中,并使用 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 后备。

If all you want to do is to place an SVG image such as a logo or static diagram, you just need to be careful to provide a fallback for older versions of Internet Explorer (i.e. versions 8 and earlier).

The best and simplest method I've found is to use a .png or .jpg for your fallback, placed using a normal img tag. You then wrap the img tag in an object tag, using the data attribute to place the SVG.

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

The img fallback is only loaded and used if the browser doesn't understand SVG.

吃兔兔 2024-08-24 02:57:50

我建议将 svg 内联放入您的文档中(html5 技术)。只需打开您的 SVG 文件,复制 SVG 标签及其内部的所有内容,然后将其粘贴到您的 html 文档中。

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

它的优点是允许您使用 css 对其进行样式设置,例如更改填充颜色或对其应用滤镜(例如模糊)。另一个优点是,如果 svg 文件位于文档内部,您可以保存一个用于获取 svg 文件的 http 请求。

例如,如果您想使用 css 更改其位置,则必须将 css 放入样式属性中。外部 css 文件中的样式不会在大多数浏览器中应用,因为这是安全限制。例如:

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

除了IE8及以下版本以及android 2.3及以下浏览器之外的所有浏览器都支持该技术。

阅读内联 SVG 章节了解更多详细信息:

如果您不想将其内嵌在页面中,那么最好替代方案似乎是对象标签并避免使用嵌入标签。

阅读此内容以了解有关对象、嵌入和 img 标签的更多详细信息:

I recommend putting the svg inline into your document (html5 technique). Just open your SVG file, copy the SVG tag and everything insideof it and then paste it into your html document.

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

It has the advantage that this allows you to use css to style it, like changing the fill color or applying filters to it like blur. Another advantage is that you save one http request for fetching the svg file if it is inside of your document.

If you want for example to change its position using css, then you have to put the css inside of a style attribute. Styles that are in an external css file will not get applied in most browser as this is a security restriction. For example:

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

This technique is supported by all browsers except IE8 and below as well as the android 2.3 browser and below.

Read the chapter inline SVG for further details:

If you dont want to put it inline in your page then the best alternative seems to be the object tag and avoid using the embed tag.

Read this for further details about object vs embed vs img tag:

乖乖 2024-08-24 02:57:50

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/" /> 

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

The best example:

<embed src="rect.svg" width="300" height="100"
type="image/svg+xml"
pluginspage="http://www.adobe.com/svg/viewer/install/" /> 
撧情箌佬 2024-08-24 02:57:50

卡斯帕的做法是正确的。但是,我会将后备移至 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);
}`

Caspar's approach is the proper one. However, I would move the fallback to the CSS, since you probably want to apply some styles to the svg file itself...

<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);
}`
ペ泪落弦音 2024-08-24 02:57:50

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

来自 w3c 学校:

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>

(引用结束)

并且要跳出框框思考,根据您想要如何使用它,您还可以将 1 色图形放入 webfont 中。 (例如,参见 iconmoon.io )

I'd like to agree with the answer from "code-zoop". Although this technically doesn't answer your question, it might also be a solution: enter the relevant data straight into the HTML. Either directly as an svg element, or by using Raphaël-JS.

From w3c-schools:

SVG is all suported in In Firefox, Internet Explorer 9, Google Chrome,
Opera, and Safari you can

<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>

(end of quote)

And to think even more outside the box, depending on how you want to use it, you can also put your 1-color graphics in a webfont. (see for example iconmoon.io )

秋心╮凉 2024-08-24 02:57:50

Raphaël — JavaScript 库。不错的 javascript 库,使用 svg,为您提供多种效果!

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

Raphaël—JavaScript Library. Nice javascript library that is using svg, and gives you a large range of effects!

Also supports most browsers, including IE

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文