我在html 5中尝试使用自定义标记。
我尝试了以下内容:
<my-script src='script.js' />
这是在源代码中的'head'标记内 - 但浏览器(FF \ chrome)将其呈现在正文中。此外,它还使用额外的“结束”标记进行渲染:
<my-script src='script.js'> </my-script>
并且,'body'标签的所有内容都嵌套在此自定义标记内(浏览器使用我的自定义标记包装'body'的内容)。
我尝试过使用自定义DTD,但是无法让它工作......任何想法都有吗?
答案 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访问它的客户端脚本之外没有任何效果。