在我在互联网上看到的大约一半svg示例中,代码被包装在简单的<svg></svg>
标记中。
在另一半中,svg标记有许多复杂的属性,如下所示:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
我的问题是:使用简单的svg标记可以吗?我试着玩那些复杂的游戏,如果不包括它们的话,一切都会很好。
发布于 2013-08-27 14:32:35
所有用户代理(浏览器)都忽略version属性,因此您可以始终删除该属性。
如果您将SVG内联地嵌入到HTML页面中,并以text/html
的形式提供该页面,那么不需要xmlns属性。。在HTML文档中嵌入SVG是作为HTML5的一部分而出现的一项新的创新。
但是,如果您将页面服务为image/svg+xml或application/xhtml+xml或导致用户代理使用XML解析器的任何其他MIME类型,则可以使用必填项。直到最近,这还是唯一的方法,所以有很多这样的内容。
发布于 2018-02-07 15:09:52
我想把这两个答案都加进去,但我没有要点,我要增加一个新的答案。在最近对Chrome (版本63.0.3239.132 (正式构建)(64位Windows))的测试中,我发现:
xhr.responseText
和elm.innerHTML
。这不需要xmlns。xhr.responseXML.documentElement
和elm.appendChild()
或elm.insertBefore()
。这种创建内联SVG的方法在不声明基本SVG命名空间的情况下产生半生不熟的结果,就像在xmlns="http://www.w3.org/2000/svg"
中一样。加载到HTML中,但是文档级别的函数(如getElementById()
)在元素上不被识别。我假设这是因为它在XMLHttpRequest之外使用了HTML解析器。
发布于 2019-09-27 15:45:52
关于SVG版本属性,MDN WebDoc说
自SVG 2起就不再受欢迎了 不再建议使用此功能。虽然有些浏览器可能仍然支持它,但它可能已经从相关的web标准中删除,可能正在被删除,或者可能仅为兼容性目的而保留。避免使用它,并在可能的情况下更新现有代码;请参阅本页底部的兼容性表,以指导您的决策。请注意,此功能可能在任何时候停止工作。 version属性用于指示SVG文档符合什么规范。它只允许在根元素上使用。它纯粹是咨询性的,对渲染或处理没有影响。
PS: SVG 2还远没有成为一个标准。
https://stackoverflow.com/questions/18467982
复制相似问题