我正在 html 5 中试验自定义标签。
我尝试了以下方法:
<my-script src='script.js' />
这是在源代码中的“head”标签内 - 但浏览器 (FF\chrome) 将其呈现在主体内。此外,它还带有一个额外的“结束”标记:
<my-script src='script.js'> </my-script>
并且,“body”标签的所有内容都嵌套在这个自定义标签中(浏览器用我的自定义标签包装“body”的内容)。
我尝试使用自定义 DTD,但就是无法正常工作...有人有什么想法吗?
最佳答案
浏览器将标签视为 <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 访问它的客户端脚本,否则不会有任何影响。
关于html - HTML 5 中的自定义 DTD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465222/