首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否需要SVG参数,如'xmlns‘和'version’?

是否需要SVG参数,如'xmlns‘和'version’?
EN

Stack Overflow用户
提问于 2013-08-27 14:16:46
回答 3查看 73.3K关注 0票数 291

在我在互联网上看到的大约一半svg示例中,代码被包装在简单的<svg></svg>标记中。

在另一半中,svg标记有许多复杂的属性,如下所示:

代码语言:javascript
运行
复制
<svg 
  xmlns="http://www.w3.org/2000/svg" 
  version="1.1" 
  xmlns:xlink="http://www.w3.org/1999/xlink"> 

我的问题是:使用简单的svg标记可以吗?我试着玩那些复杂的游戏,如果不包括它们的话,一切都会很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-27 14:32:35

所有用户代理(浏览器)都忽略version属性,因此您可以始终删除该属性。

如果您将SVG内联地嵌入到HTML页面中,并以text/html的形式提供该页面,那么不需要xmlns属性。。在HTML文档中嵌入SVG是作为HTML5的一部分而出现的一项新的创新。

但是,如果您将页面服务为image/svg+xml或application/xhtml+xml或导致用户代理使用XML解析器的任何其他MIME类型,则可以使用必填项。直到最近,这还是唯一的方法,所以有很多这样的内容。

票数 265
EN

Stack Overflow用户

发布于 2018-02-07 15:09:52

我想把这两个答案都加进去,但我没有要点,我要增加一个新的答案。在最近对Chrome (版本63.0.3239.132 (正式构建)(64位Windows))的测试中,我发现:

  1. 对于通过文本编辑器或javascript和elm.innerHTML直接输入到HTML文件的内联SVG,xmlns属性是不必要的,正如其他两个答案所述。
  2. 但是对于通过javascript和AJAX加载的内联SVG,有两个选项:
    • 使用xhr.responseTextelm.innerHTML。这不需要xmlns。
    • 使用xhr.responseXML.documentElementelm.appendChild()elm.insertBefore()。这种创建内联SVG的方法在不声明基本SVG命名空间的情况下产生半生不熟的结果,就像在xmlns="http://www.w3.org/2000/svg"中一样。加载到HTML中,但是文档级别的函数(如getElementById() )在元素上不被识别。我假设这是因为它在XMLHttpRequest之外使用了HTML解析器。

票数 11
EN

Stack Overflow用户

发布于 2019-09-27 15:45:52

关于SVG版本属性,MDN WebDoc

自SVG 2起就不再受欢迎了 不再建议使用此功能。虽然有些浏览器可能仍然支持它,但它可能已经从相关的web标准中删除,可能正在被删除,或者可能仅为兼容性目的而保留。避免使用它,并在可能的情况下更新现有代码;请参阅本页底部的兼容性表,以指导您的决策。请注意,此功能可能在任何时候停止工作。 version属性用于指示SVG文档符合什么规范。它只允许在根元素上使用。它纯粹是咨询性的,对渲染或处理没有影响。

PS: SVG 2还远没有成为一个标准。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18467982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档