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



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

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

当我用javascript调用属性时:

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

都返回true

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

您应该始终使用小写字符。即使一些浏览器可以自动纠正标记中的错误(这就是Chrome在这里为你做的),它也可能导致错误,并且不符合HTML5。从MDN:

  • 名称不能以xml开头,无论使用什么大小写字母;
  • 名称不能包含分号(U+003A);
  • 这个名字不能包含大写字母A到Z。

编辑

经过更多的研究,我发现了这个:

HTML文档中HTML元素的所有属性名ASCII-自动小写,所以对ASCII大写的限制字母不影响这样的文件。

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

从浏览器供应商那里获取信息是没有意义的。相反,您应该直接从源代码(W3C标准)获取该信息:

http://w3c.github.io/html-reference/documents.html不区分大小写

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

在HTML语法文档中:HTML元素的标签名可以是用大写字母和小写字母的任意组合写成对HTML中给定的元素名称进行不区分大小写的匹配本文件的"要素"部分;也就是说,标签名是——麻木不仁的。HTML元素的属性名可以写大写字母和小写字母的任意组合属性中给定的属性名称的不区分大小写匹配本文档的HTML元素部分;也就是说,属性名是——麻木不仁的

最新更新