html5数据属性是否不区分大小写?

Jo *_* E. 15 html5

我最近注意到chrome将数据属性转换data-*为小写.

例如

<div data-Me="awesome"></div><div data-me="awesome"></div>在Chrome Dev Tools中转换为.

当我用javascript调用属性时:

console.log(e.hasAttribute('data-Me'),e.hasAttribute('data-me'));

两者都归实为.

那么命名数据属性的标准方法是什么?

dam*_*zzi 18

您应该始终使用小写字符.即使某些浏览器会自动纠正标记中的错误(这就是Chrome在这里为您所做的),但它可能会导致错误并且无效HTML5.来自MDN:

  • 名称不能以xml开头,无论用于这些字母的情况如何;
  • 名称不得包含任何分号(U + 003A);
  • 名称不得包含大写字母A到Z的字母.

编辑

更深入地进入它我发现了这个:

HTML文档中HTML元素的所有属性名称都会自动进行ASCII小写,因此对ASCII大写字母的限制不会影响此类文档.

无论如何,我建议您从一开始就以正确的方式进行.

  • @Alohci因为你不应该认真对待验证者(我猜你已经使用过W3C验证器了).它并不总是最新的.阅读官方规格总是更好. (2认同)

小智 9

HTML5 标签和属性不区分大小写。

从浏览器供应商那里获取信息毫无意义。相反,您应该直接从源(W3C 标准)获取该信息:http : //w3c.github.io/html-reference/documents.html#case-insensitive

您可以使用 XHTML 或 HTML5。从网页加载的角度来看,目前只有 HTML5 有意义。

在采用 HTML 语法的文档中: • HTML 元素的标签名称可以用小写和大写字母的任意混合书写,这些字母与本文档 HTML 元素部分中给出的元素名称不区分大小写。也就是说,标签名称不区分大小写。• HTML 元素的属性名称可以用小写和大写字母的任意混合书写,这些字母与本文档的 HTML 元素部分中给出的属性名称不区分大小写。也就是说,属性名称不区分大小写