自定义属性vs data- *属性

时间:2012-03-07 20:02:02

标签: html dom

我知道数据属性是HTML 5的一部分。使用它来标记标记中的某些数据似乎是一个不错的选择。所以有人使用data-bind =“xxx”。但我可以使用bind =“xxx”。它似乎违反了规范的架构,但实际上它适用于所有浏览器。所以我的问题是,我不应该像bind =“xxx”那样使用关键属性的实际原因(不是在理论上)是什么样的表现。我知道bind属性不是保留属性。

由于

2 个答案:

答案 0 :(得分:3)

实际上,某些浏览器可以实现具有完全不同含义的bind

你将它用于Knockout,但假设新的含义是不同的。当你在一个元素上更改内联CSS时,它应该根据bind属性中的选择器在另一个元素上更改它。

有理由尊重标准并使用私有(例如数据)或特定于供应商的前缀。

答案 1 :(得分:0)

我知道这个问题已经过时了,但我和弗雷德有同样的问题。我找到了答案,我想分享它。除了在另一个答案中提到的内容之外,没有任何实际理由不使用任意属性名称。这是供应商或浏览器制造商可能决定将该名称用于其他内容。 然而,规范中不允许使用,而规范确实读取了不应使用任意属性名称,没有什么能阻止它们的使用。这就像美国显示标志代码一样,它是一套规则,但无法强制执行。 将此与强制执行的规则(例如html文档中的单个正文标记等)进行对比,您可以意识到没有任何强制使用任意名称的属性。 那么剩下的就是为什么不使用任意属性名称?由于它不会通过W3 html验证器,因此可以认为社会压力可能会增加到您的代码无法接受的程度。例如,SEO可能会受到影响,未来的雇主可能不喜欢草率的代码等。 当我自由地使用任意属性名来传递数据时,我当然感到很尴尬。我会马上停下来的东西。我现在确信使用data- *属性将使我的代码更易于阅读,更易于维护和清洁,足以进行同行评审