在我看到的一半SVG示例中,代码包含简单的<svg></svg>标签。
在另一半示例中,SVG标签具有许多复杂的属性,例如:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
我的问题是:使用简单的SVG标签是否可以?我尝试过使用复杂的标签,但如果不包括它们,我的端口一切正常。
xmlns="http://www.w3.org/2000/svg"
属性:
xmlns:xlink="http://www.w3.org/1999/xlink"
属性:
version="1.1"
属性:
所有用户代理(浏览器)都会忽略版本属性,因此您始终可以删除该属性。
如果您将SVG内联嵌入HTML页面并将该页面作为text/html
提供,则不需要xmlns属性。在HTML5的框架下,将SVG内联嵌入HTML文档是一项相当新的创新。
但是,如果您以image/svg+xml、application/xhtml+xml或任何其他会导致用户代理使用XML解析器的MIME类型提供页面,则xmlns属性是必需的。这是直到最近唯一的处理方式,因此有很多这样的内容服务。
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
它可以工作,但是如果我去掉xmlns或者将其更改为<!DOCTYPE svg xmlns="www.example.com">
,它就无法工作了。为什么会这样? - Donald Duckxmlns:
属性只是为命名空间声明了一个前缀。如果您不使用前缀,就不需要这些内容。因此,如果您的SVG没有xlink:
属性,则是不必要的。就像在每个XML文档中一样。 - ygoe我想在两个答案的基础上补充一点,但是我没有积分,所以我正在添加一个新的答案。 在最近对Chrome(版本63.0.3239.132(官方版本)(64位Windows))的测试中,我发现:
关于SVG版本属性,MDN的WebDoc表示:
自SVG 2起已弃用
该功能不再建议使用。尽管一些浏览器仍可能支持它,但它可能已经从相关网络标准中删除,正在被删除过程中,或者仅出于兼容性目的而保留。请避免使用它,并尽可能更新现有代码;查看此页面底部的兼容性表格以指导您的决策。请注意,此功能随时可能停止工作。版本属性用于指示SVG文档符合哪个规范。它仅允许在根元素上使用。它纯粹是建议性的,对呈现或处理没有影响。
附:SVG 2远未成为标准。
version
属性(<?xml version...
)与<svg>
元素的version
属性混淆。前者是关于XML标记语言版本的,而后者指定了SVG的版本。回答者在³中引用了XML而不是SVG规范,因此犯了这个错误。我试图进行更正,但一些白痴拒绝了编辑。 - Bachsau