HTML 5自定义元素名称?

前端之家收集整理的这篇文章主要介绍了HTML 5自定义元素名称?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
HTML 5 specification中,解析器和规范声明元素名称可以是以字母开头并且后跟字母数字字符的所有内容.

现在的问题是,如果我引入的附加元素不是规范的一部分,但在符合指定语法方面有效,那么会发生什么.

所有这些浏览器在遇到具有自定义但未知名称的元素时会做什么?这些元素是否像任何元素一样受到威胁,还是被遗漏,剥离或替换?

例如,HTML5编辑器的行为如何?

关于有效的元素标签名称,我忽略了哪些规范?

[更新]

该规范在这里具有误导性,因为它声明了HTML元素名称的字母数字字符.在阅读HTML 5规范时,我想念所有元素名称都是如此.

这显然是错误的.在解析器部分中,它声明元素名称必须仅以ASCII字母开头,并且在该字母后面除外:

“tab” (U+0009)
“LF” (U+000A)
“FF” (U+000C)
U+0020 SPACE
“/” (U+002F)
“>” (U+003E)
U+0000 NULL
EOF

除了那些需要特殊处理涉及错误或结束标签名称的字符旁边,所有其他可能的字符接缝都是允许的.

Anything else
–> Append the current input character to the current tag token’s tag name.

从我的现场测试中,几个解析器的第一个字母也允许使用附加的单代码字母(至少它们优于那些).

[/更新]

解决方法

In HTML 5 specification the parser and the specification state that
the element name can be everything starting with a letter and followed
by alpha-numeric characters.

不正确.规范声明元素名称必须是该文档中明确列出的名称之一,或者在另一个适用的规范中.这些包括但不限于SVG和MathML.

该规范还包括HTML的消费者的处理规范,例如浏览器.这并没有描述什么是“允许”,它描述了这些消费者应该对文档的每个字符做什么,无论它是否包含允许或不允许的内容.

Now the question is what happens if I introduce additional elements
not part of the specification but valid in terms of compliance to the
specified Syntax.

遵循以上规则. “指定语法”无关紧要.规范描述了消费者应该对任何输入字符串做什么.

What do all those browsers do when they encounter elements with custom
yet unknown name? Does those elements got treated like any element or
are they left out,stripped out or replaced?

它们被视为http://www.w3.org/1999/xhtml名称空间中实现HTMLUnknownElement接口的元素.

How for instance do HTML5 editor behave?

如果它们符合HTML5,则在读取HTML时它们的行为方式相同.

Is there anything in the specifications I have overlooked regarding
valid element tag names?

见上面的第一段.此外,Custom Elements spec使任何元素名称以ASCII字母开头并包含连字符被认为是有效的.目前还不清楚该规范目前是否是“HTML5适用规范”,但如果不是,它很可能很快就会出现.

原文链接:https://www.f2er.com/html/228028.html

猜你在找的HTML相关文章