自定义属性vs data- *属性

问题描述:

我知道data-Attributes是HTML 5的一部分。它似乎是一个很好的选择,可以用它来标记一些数据。所以有人使用data-bind =“xxx”。但我可以使用bind =“xxx”。它似乎违反了规范的架构,但实际上它适用于所有浏览器。所以我的问题是,像性能这样的实际原因(不是理论上的),我不应该像bind =“xxx”那样使用海关属性。我知道绑定属性不是保留属性。自定义属性vs data- *属性

感谢

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

您正在使用它作为Knockout,但假设新的含义是不同的。在一个元素上更改内联CSS时,应该根据绑定属性中的选择器在另一个元素上更改它。

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

+0

假设此页面是我的页面,此属性为nobodycareattributexceptme =“xxx”,“几乎“,像(404,内存不足,不正确的UI渲染)会造成什么坏影响。 – 2012-03-07 20:14:06

+0

这是一个很难记住(和搜索)属性名称。除此之外,如果您使用这样一个晦涩的名字,我不知道问题。这并不意味着不会有任何的。 – 2012-03-07 21:25:55

我知道这个问题很老,但我和Fred有同样的问题。我找到了答案,我想分享它。除了在另一个答案中提到的内容之外,没有任何实际的理由不使用任何属性名称。这是一个供应商或浏览器制造商可能决定使用其他名称的名称。 然而,它不允许在spec,kind-of中,虽然规范确实不应该使用任意属性名称,但没有任何东西阻止它们的使用。这就像美国代码显示一个标志,这是一组规则,但没有办法强制执行它。 将这与一个强制执行的规则(如html文档中的单个身体标记等)进行对比,您可以意识到没有任何内容会强制使用任意名称来表示属性。 所以仍然是为什么你不应该使用任意的属性名称?由于它不会通过W3HTML验证器,因此可以认为社会压力可能会增加到您的代码不可接受的程度。例如,搜索引擎优化可能会受到影响,未来的雇主可能不喜欢草率的代码等。 由于我*使用任意属性名称来传递数据,我当然感到尴尬。我会立即停止的事情。我现在确信,使用data- *属性将使我的代码更易于阅读,更易于维护和清洁,足以进行同行评审