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

时间:2014-07-30 09:30:39

标签: html5

我最近发现Chrome会将数据属性data-*转换为小写。

e.g。

<div data-Me="awesome"></div>将在Chrome开发者工具中转换为<div data-me="awesome"></div>

当我用javascript调用属性时:

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

都返回 true

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

2 个答案:

答案 0 :(得分:17)

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

  • 该名称不得以xml开头,无论使用何种情况 信;
  • 名称不得包含任何分号(U + 003A);
  • 这个名字 不得包含大写字母A至Z字母。

修改

进一步深入了解我发现this

  

获取HTML文档中HTML元素的所有属性名称   ASCII-lowercased自动,所以限制ASCII大写   信件不会影响这些文件。

无论如何,我建议您从头开始直接以正确的方式进行。

答案 1 :(得分:1)

HTML5标签和属性是不敏感的。

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

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

  

在HTML语法的文档中:   •HTML元素的标记名称可能是   用任何混合的小写和大写字母写成的   不区分大小写的匹配HTML中给出的元素的名称   本文件的要素部分;也就是说,标签名称是   区分的不敏感即可。   •可以编写HTML元素的属性名称   任何混合的小写和大写字母都是   不区分大小写的匹配项中给出的属性的名称   本文档的HTML元素部分;也就是说,属性名称是   区分的不敏感