在HTML规范中有一个叫做自定义元素的概念。有一个明确的表达式,这些元素的名称应该跟随。但是,在打开浏览器中的编辑器之后,我们可以安全地编写不遵循这些规则的元素,或者使用不遵循这些规则的元素创建一个简单的页面。例如,<redcar> </redcar>。为什么这是允许的,并且不会造成任何错误?毕竟,如果我们编写这样的东西:<~hello> </~hello>,那么开始标记将被视为文本,结束标记将被注释掉。在任何情况下,您都需要特定的链接来解释这种行为。
有效的自定义元素名是满足以下所有要求的字符名称序列:
PotentialCustomElementName ::= [a-z] (PCENChar)* '-' (PCENChar)*
PCENChar ::= "-" | "." | [0-9] | "_" | [a-z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
这使用了XML规范中的EBNF符号。XML
annotation-xmlcolor-profilefont-facefont-face-srcfont-face-urifont-face-formatfont-face-namemissing-glyph
发布于 2018-07-05 04:15:18
还不清楚你会认为什么是错误。
HTML解析主要面向“永不抛出”原则,并将尝试将所有内容转换为有效的内容。
在您的具体情况下,您创建的是一个https://html.spec.whatwg.org/multipage/dom.html#htmlunknownelement,下面是规范:
HTML命名空间中具有名称的元素的元素接口如下所示:
applet、bgsound、blink、isindex、keygen、multicol、nextid或spacer,则返回HTMLUnknownElement。acronym、basefont、big、center、nobr、noembed、noframes、plaintext、rb、rtc、strike或tt,则返回HTMLElement。listing或xmp,则返回HTMLPreElement。有了<redcar></redcar>,你一路走到第7点。
发布于 2018-07-14 07:32:13
当然,错误是会引起的。你可以在这里找到他们:
如果这些错误是致命的,即在错误发生后浏览器将停止呈现页面,谷歌就会停业,因为很少有网站在线,以至于人们可以很容易地记住它们。
https://stackoverflow.com/questions/51183241
复制相似问题