大多数浏览器似乎允许您创建您喜欢的任何元素标记,并将您喜欢的任何属性名称添加到元素中.例如:
<!DOCTYPE html>
<html>
<body>
<div my-attribute="has no data- prefix, but seems to behave like an attribute should">
<br/>
<hello-world style="display:block;background:#eee">Hello Everybody</hello-world>
<goodby-world style="background:#faa">Default display is inline</goodbye-world>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以上显示正常.看起来未定义的元素表现得非常像跨度.看起来AngularJS也充分利用了自定义标签和属性 - 它几乎取决于它.
但是,据我所知,做那种事情是禁止的,除了自定义html5属性带有"data-"前缀的情况.
所以,我的问题是:构成自己的自定义元素标签和/或属性名称不再是禁忌吗?换句话说,AngularJS是否依赖于非标准怪癖,而这些怪癖并不是HTML5规范的真正组成部分,但却恰好相反?谷歌有人发现了一个长期丢失的html5规范秘密章节吗?还是我完全误解了什么?