大多数浏览器似乎允许您创建任何喜欢的元素标记,并向元素添加任何喜欢的属性名称。例如:
<;!DOCTYPE html>;
<;html>;
<;车身>;
<;div my attribute=“没有数据前缀,但其行为似乎与属性应类似”>;
<;br/>;
<;hello world style=“显示:块;背景:#eee”>;大家好</你好,世界>;
<;goodby world style=“背景:#faa”>;默认显示为内联</再见世界>;
</部门>;
</车身>;
</html>;
以上显示良好。看起来未定义的元素的行为非常类似于跨度。
看起来AngularJS还利用了自定义标记&;属性相当多-这在很大程度上取决于它
但是,据我所知,这样做是不可能的,除了带有“data-”前缀的自定义html5属性
所以,我的问题是:创建自己的自定义元素标记和/或属性名是否不再是禁忌?或者换句话说,AngularJS是否依赖于非标准的怪癖,这些怪癖不是HTML5规范的一部分,只是碰巧可以工作?谷歌有人发现了html5规范中一个失传已久的秘密章节吗?还是我完全误解了什么
它不会验证,但会呈现
HTML5的设计非常宽容(与XHTML相反)。这在一定程度上是为了让“老”HTML5浏览器可以允许新的元素(以及格式糟糕的HTML),而该版本还不支持这些元素,而不会破坏页面
这当然可以被“利用”来引入自定义标记
话虽如此,您也可以使用HTML4来实现这一点
如注释中所述:您还可以在普通标记中的任何属性前面加上data-
前缀,并进行验证