自定义元素的名称是否需要短划线?

时间:2014-03-20 21:34:50

标签: polymer web-component x-tag

是否可以在不使用短划线的情况下为自己的自定义元素<date><person><city>或其他人命名?没有它们可以使用define元素吗?

1 个答案:

答案 0 :(得分:61)

所有浏览器都支持HTML元素的有限列表,这些元素被视为“已知”。未知的元素(例如<city><person>)通常不会在现代浏览器中使用HTML解析器抛出错误,而是从HTMLUnknownElement继承。然而,在IE的旧版本中,这些元素将作为空节点插入DOM而没有任何子节点(1)。

所有自定义元素在名称中包含连字符(-)的Custom Elements规范requires。因此,您应使用<person><my-person>而不是<x-person>。这些是有效的名称,而<person&gt;被认为是一个未知元素。

破折号有效地允许HTML解析器区分真正的自定义元素和常规元素之间的区别。它还允许我们在标准组向HTML添加新标签时启用一定级别的未来功能。

您可以使用除以下内容之外的任何连字符分隔名称:

  • annotation-xml
  • color-profile
  • font-face
  • font-face-src
  • font-face-uri
  • font-face-format
  • font-face-name
  • missing-glyph

据我所知,这些名称是SVG,MathML和其他规范的保留名称。例如,<font-face>元素上的info更多。

(1)这引起了开发人员使用JavaScript在IE中创建虚拟HTML5标记(例如<article>)的黑客攻击,以便他们可以使用CSS为任何普通元素设置样式。 / em>的