根据许多最近的 HTML 规范,当我们使用自定义属性(即规范中未定义的任何属性)时,我们应该在它们前面加上
data-
. 但是,我认为没有理由必须这样做(显然,除非您需要完全有效的 HTML)。几乎所有当前的浏览器都正确地忽略了自定义属性,这意味着除了与其他代码中的同名属性之外没有冲突,我们甚至可以使用自定义前缀或类似的东西来忽略这一点(如AngularJS 指令页面上所建议的那样)。如果有的话,还有什么其他好处?这个问题以前至少被问过两次,但都已经很老了。我忘记了我在哪里读到的,但是一些指南说自定义 HTML 标签需要破折号,而单个单词标签是无效的。首先,为什么?其次,我们应该这样做,为什么(除了有效之外)?下划线或者camelCase等会有什么问题吗?此外,与现有元素的冲突应该不是问题,如果像使用
data
属性一样,您可以为它们添加前缀或后缀等。再次参见Angular 指令页面。
我敢肯定所有这些问题之前都曾被问过,但我将它们合二为一。这是个好主意(很快,有人在 Meta 上问)?