为什么没有data-*元素?

Ger*_*art 5 html5 element visual-studio angularjs

这个问题主要是为了满足我的好奇心:随着大型javascript框架的增长和接受,比如5年,在元素上添加自定义行为的已知html元素已经变得越来越普遍.出于这个原因,html5引入了data-*属性,几乎每个工具,包括浏览器解析dom在渲染时主动忽略,但是Js框架的关键是将html丰富为完整的应用程序平台.

使用Angular指令(例如),应用程序构建器通过添加甚至创建自定义元素的功能来丰富html作为一个整体.然而,问题在于,这是编辑工具(如Visual Studio)中断的地方,因为他们喜欢主动检查您添加的html元素是否存在.

现在,我的问题不是关于visual studio(我知道如何禁用html验证),但为什么html5标准的创建者从未考虑过包含data-*元素呢?或者也许他们这样做了,这个想法以某种方式被丢弃了.有人知道吗?

Chr*_*eau 0

data-前缀实际上是HTML5 草案的一部分

这些属性用于语义 HTML;例如,将数据库 ID 附加到 HTML 元素,以便 HTML 解析器可以使用此数据。对于 Angular,自定义属性不携带数据;它们扩展了 HTML。

Mozilla 有一些关于数据前缀主题的指南:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes

编辑HTML 元素的目的是携带浏览器要显示的内容、将元数据附加到这些元素的属性<head>以及将元数据附加到整个文档的属性。HTML 中没有任何data-元素,因此它与该设计一致。