下面的问题让我很困惑。我知道他们有血缘关系但是..。
详情-
<!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 )”。
发布于 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/xhtml或http://www.w3.org/2000/svg命名空间,这取决于它们在HTML代码中出现的上下文。
HTML解析器不了解HTML elements、SVG elements和MathML elements等信息。没有从其他名称空间使用元素的选项,既不隐式也不显式地使用。也就是说,xmlns属性没有任何影响。
https://stackoverflow.com/questions/23319537
复制相似问题