是否可以命名您自己的自定义元素<date>
, <person>
, <city>
或者其他不使用破折号的?可以在没有它们的情况下使用定义元素吗?
所有浏览器都支持有限的 HTML 元素列表,这些元素被视为“已知”。未知的元素(例如<city>
, <person>
)在现代浏览器中,HTML 解析器通常不会抛出错误,而是继承自HTMLUnknownElement
。然而,在旧版本的 IE 中,此类元素将作为没有任何子节点的空节点插入到 DOM 中 (1)。
The 自定义元素规格requires所有自定义元素都包含连字符 (-
) 在名字里。所以而不是<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 和其他规范的保留名称。例如,这里有更多info on the <font-face>
元素。
(1) 这引发了黑客攻击,开发人员在 IE 中创建一个虚拟 HTML5 标签(例如<article>
)使用 JavaScript,以便他们可以使用 CSS 根据任何普通元素对其进行样式设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)