HTML 5中的自定义DTD

时间:2013-07-04 08:17:46

标签: html tags dtd

我在html 5中尝试使用自定义标记。

我尝试了以下内容:

<my-script src='script.js' />

这是在源代码中的'head'标记内 - 但浏览器(FF \ chrome)将其呈现在正文中。此外,它还使用额外的“结束”标记进行渲染:

<my-script src='script.js'> </my-script>

并且,'body'标签的所有内容都嵌套在此自定义标记内(浏览器使用我的自定义标记包装'body'的内容)。

我尝试过使用自定义DTD,但是无法让它工作......任何想法都有吗?

1 个答案:

答案 0 :(得分:1)

浏览器会将<my-script src='script.js' />之类的标记视为未知元素的开始标记(除非页面以XML内容类型提供)。由于head内不允许使用此类代码,因此会隐式关闭head元素并启动body元素。

DTD与此无关,因为浏览器甚至不读取DTD(并且HTML5没有DTD,也不可能编写符合HTML5语法规则的DTD。)

因此,实际上,您无法在head元素中使用自定义元素。如果您希望使用没有内容的自定义元素,请将其放在body元素内,并使用拼写出来的结束标记进行编写:<my-script src='script.js'></my-script>。这样,它不会影响页面的显示或解析,除了通过DOM访问它的客户端脚本之外没有任何效果。