是SVG参数,如';xmlns';和';版本';需要?

是SVG参数,如';xmlns';和';版本';需要?,xml,svg,tags,Xml,Svg,Tags,在我在互联网上看到的大约一半的svg示例中,代码用简单的标记包装 在另一半中,svg标记有许多复杂的属性,如下所示: <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"> 我的问题是:使用简单的svg标记可以吗?我已经尝试过处理复杂的版本,如果我不包括它们,那么在我这方面一切都很好。所有用户代理(浏览器)都会忽略版本属

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

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

<svg 
  xmlns="http://www.w3.org/2000/svg" 
  version="1.1" 
  xmlns:xlink="http://www.w3.org/1999/xlink"> 

我的问题是:使用简单的svg标记可以吗?我已经尝试过处理复杂的版本,如果我不包括它们,那么在我这方面一切都很好。

所有用户代理(浏览器)都会忽略版本属性,因此您可以随时删除该属性

如果您将SVG内嵌到HTML页面中,并将该页面作为
text/HTML
提供,那么。在HTML文档中嵌入SVG内联是一项相当新的创新,它是HTML5的一部分

但是,如果您将页面作为image/svg+xml或application/xhtml+xml或任何其他导致用户代理使用xml解析器的MIME类型提供,那么。直到最近,这还是唯一的方法,所以有很多内容都是这样提供的。

the
xmlns=”http://www.w3.org/2000/svg“
属性是:

  • 图像/svg+xml文件需要。一,
  • 可选用于内联
    。二,
xmlns:xlink=”http://www.w3.org/1999/xlink“
属性是:

  • 对于具有xlink:属性的图像/svg+xml文件,需要。一,
  • 可选用于具有xlink:属性的内联。二,
version=“1.1”
属性是:

  • 建议遵守图像/svg+xml文件标准。三,
  • 显然被每个用户代理忽略。四,
  • 已在SVG 2中删除。五,
1
2
3
4可能直到发布更多的主要版本。

5

我想补充两个答案,但我没有要点,我在补充一个新答案。 在最近对Chrome(版本63.0.3239.132(官方版本)(64位Windows))的测试中,我发现:

  • 对于通过文本编辑器或javascript和elm.innerHTML直接输入HTML文件的内联SVG,如其他两个答案中所述,xmlns属性不是必需的
  • 但对于通过javascript和AJAX加载的内联SVG,有两个选项:
    • 使用
      xhr.responseText
      elm.innerHTML
      。这不需要xmlns
    • 使用
      xhr.responseXML.documentElement
      elm.appendChild()
      elm.insertBefore()
      。这种创建内联SVG的方法会产生不完整的结果,而不会声明基本的SVG名称空间,如
      xmlns=”http://www.w3.org/2000/svg“
      。加载到HTML中,但在元素上无法识别文档级函数,如
      getElementById()
      。我假设这是因为它在HTML之外使用XMLHttpRequest XML解析器

  • 关于SVG版本属性MDN说

    自SVG 2以来已弃用
    不再推荐此功能。虽然 某些浏览器可能仍然支持它,它可能已经被删除 从相关的网络标准来看,可能正在进行中 删除,或仅出于兼容性目的保留。避免使用 如有可能,更新现有代码;请参阅兼容性表 在本页底部,以指导您的决策。要意识到这一点 功能可能随时停止工作

    version属性用于指示SVG的规格 文件符合。它只允许在根元素上使用。信息技术 纯粹是建议性的,对渲染或处理没有影响


    PS:SVG 2还远未成为标准。

    “所有UAs都会忽略版本属性,因此您可以随时删除它。”-但是规范对此有何评论?“浏览器会让你逍遥法外”在许多(或曾经)明显不正确的实践中是(或曾经是)正确的。在IE11中,如果我把
    放进去,它会工作,但如果我把xmlns拿走或改成
    ,它就不工作了。为什么会这样?@RobertLongson:当你说“xmlns属性”时,它包括xmlns:xlink吗?什么是“UA”?@Marcel如果这些数据URI是image/svg+xml,通常情况下,那么答案的最后一部分是正确的。它需要是http还是也可以是https?@JohannesB这两种协议都是兼容的:D@JohannesB是的,这里有一个内联示例和带有xlink属性的内联svg的image/svg+xml文件示例谢谢,我猜Nick Craver也会犯错误;)不要弄错xml声明的
    version
    属性(