首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML 5、内联SVG和SVG的命名空间识别

HTML 5、内联SVG和SVG的命名空间识别
EN

Stack Overflow用户
提问于 2014-04-27 04:51:13
回答 1查看 4.2K关注 0票数 13

下面的问题让我很困惑。我知道他们有血缘关系但是..。

  1. HTML 5命名空间是否知道(用于包含SVG/其他XML方言的标记)?
  2. 如果不是,那这个呢-我读过这个年长的链接,但我完全困惑.因为Mozilla说“要动态修改内联SVG,需要以的方式编写脚本”--最后,我如何动态地修改内联SVG (如果HTML5不知道名称空间)?
  3. 还是页面需要作为(X)HTML 5使用?

详情-

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>hello-SVG</title>
</head>
<body>
    <svg width="200" height="200">
        <rect x="0" y="0" width="100" height="100" fill="blue"></rect>
    </svg>
</body>
</html>

以上代码是在HTML5中呈现rect (使用SVG)的正确方法。现在,要使用JavaScript修改SVG,Mozilla建议使用 API。我的问题是,如果HTML 5不知道名称空间,那么这样做有什么意义呢?对于这种情况,浏览器会自动切换到(X)HTML 5吗?

我读到了的评论,我发现它最接近我想要的答案-

我猜HTML 5 SVG的情况基本上是“没有名称空间的SVG获得解析期间添加的名称空间(但之后就像之前的(X)HTML )”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-27 10:47:20

HTML5定义了HTML、XHTML和DOM。

DOM是命名空间感知的。当您使用DOM方法时,您必须考虑每个元素在哪个名称空间中,但是默认的是HTML (http://www.w3.org/1999/xhtml)名称空间。

HTML和XHTML是串行化,通过解析将它们转换为DOM。

XHTML是命名空间感知的,XHTML文档根据XML的规则应用名称空间,因此所有名称空间必须显式地分配给每个元素。使用XML解析器将XHTML转换为DOM。

HTML也是命名空间感知的,但是名称空间被隐式地分配为。使用HTML解析器将HTML转换为DOM,该解析器知道哪些元素在哪个命名空间中。也就是说,它知道<div>进入http://www.w3.org/1999/xhtml命名空间,<svg>进入http://www.w3.org/2000/svg命名空间。像<script>这样的元素可以进入http://www.w3.org/1999/xhtmlhttp://www.w3.org/2000/svg命名空间,这取决于它们在HTML代码中出现的上下文。

HTML解析器不了解HTML elementsSVG elementsMathML elements等信息。没有从其他名称空间使用元素的选项,既不隐式也不显式地使用。也就是说,xmlns属性没有任何影响。

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

https://stackoverflow.com/questions/23319537

复制
相关文章

相似问题

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