大多数浏览器似乎允许您创建任何您喜欢的元素标签,并为元素添加您喜欢的任何属性名称。例如:
<!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>
以上显示正常。看起来未定义的元素的行为很像跨度。看起来 AngularJS 也充分利用了自定义标签和属性——这在很大程度上取决于它。
但是,据我了解,做这种事情是不行的,除非是带有“data-”前缀的自定义 html5 属性。
所以,我的问题是:组成自己的自定义元素标签和/或属性名称不再是禁忌吗?或者换一种说法,AngularJS 是否依赖非标准的怪癖,这些怪癖并不是 HTML5 规范的一部分,但只是碰巧起作用?谷歌的某个人是否发现了 html5 规范中失传已久的秘密章节?还是我完全误解了什么?