是否可以在不使用破折号的情况下命名您自己的自定义元素<date>
,<person>
或其他元素?<city>
可以在没有它们的情况下使用定义元素吗?
问问题
13804 次
1 回答
87
所有浏览器都支持有限的 HTML 元素列表,这些元素被认为是“已知的”。在现代浏览器中,未知元素(例如<city>
,<person>
)通常不会在 HTML 解析器中引发错误,而是从HTMLUnknownElement
. 然而,在旧版本的 IE 中,这些元素将作为没有任何子节点的空节点插入 DOM (1)。
自定义元素规范要求所有自定义元素-
的名称中都包含连字符 ( )。因此<person>
,您将使用<my-person>
or而不是<x-person>
。这些是有效名称,而<person
> 被认为是未知元素。
破折号有效地允许 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>
(1) 这引起了黑客攻击,开发人员将<article>
使用 JavaScript 在 IE(例如)中创建一个虚拟 HTML5 标签,以便他们可以使用 CSS 为任何普通元素设置样式。
于 2014-03-20T21:34:50.120 回答