对旧版浏览器使用 HTML5 的“data-*”属性有啥问题吗?

Posted

技术标签:

【中文标题】对旧版浏览器使用 HTML5 的“data-*”属性有啥问题吗?【英文标题】:Is there any problem with using HTML5's "data-*" attributes for older browsers?对旧版浏览器使用 HTML5 的“data-*”属性有什么问题吗? 【发布时间】:2011-04-26 20:25:30 【问题描述】:

我想将一些自定义数据与一些 html 节点相关联。我打算使用新的 HTML5 样式的 'data-*' 属性。例如:<tr class="foo" data-typeid="7">…,然后我将通过读取 $(node).attr("data-typeid") 的值来选择此 HTML 节点并显示/隐藏它等。

但是,此网页也需要与旧版浏览器一起使用。我没有将 data-* 属性用作特殊属性,但我想知道旧版浏览器是否会忽略、擦除或使该属性无法访问,因为它不是有效的 HTML4。

【问题讨论】:

Do HTML5 custom data attributes “work” in IE 6?的可能重复 【参考方案1】:

Internet Explorer 和 Microsoft 添加了几个不是有效 HTML4 的自定义属性。浏览器不会根据规范检查元素属性,您可以根据需要将属性命名为 roryscoolinfo="hello"(尽管您不应该这样做)。

Dojo 工具包添加了它的自定义 dojo* 属性。

今天可以使用data-,带有 HTML5 文档类型。

【讨论】:

【参考方案2】:

确实没有,它们在 HTML4 中当然不是 100% 正确/有效的用法......但它们也不会引起问题,所以它们仍然是一个很棒的解决“我需要一个属性”问题的方法。

如果有帮助,我在支持 IE6 的同时使用了这些,并且到目前为止问题为零,而且我不记得有一个 SO 问题报告过任何问题。

【讨论】:

HTML5 旨在尽可能与现有浏览器行为兼容。数据属性是不错的地方之一,例如 HTML5 文档类型,似乎没有太多问题。 在 IE 8 及以下版本中使用 XHTML 1.0 Transitional doctype 似乎无法将数据类型与 jquery 一起使用。

以上是关于对旧版浏览器使用 HTML5 的“data-*”属性有啥问题吗?的主要内容,如果未能解决你的问题,请参考以下文章

CSS 在旧版浏览器中支持HTML5元素所需的样式声明

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持