自己编写HTML属性是不好的做法吗?

18 浏览
0 Comments

自己编写HTML属性是不好的做法吗?

我一直在尝试使用自定义HTML属性,比如item-id之类的,来使我的代码更易读(对我来说)。这是一个不错的技巧,但我同样可以使用data-id属性。我只是想知道是否有合理的理由不建议这样做。\n例子:\n


\n谢谢!

0
0 Comments

从以上内容可以整理出以下文章:

自定义HTML属性是否是一种不好的做法?

在HTML中,如果你给自定义属性加上前缀data-,你可以创建自己的属性:

<input type="submit" value="submit" data-item-id="137" />

甚至jQuery也支持这种方式,它提供了一个内置方法,可以使用data()函数获取属性的值(在这个例子中是$('input').data('item-id'))。

W3C的参考文档中有关于自定义数据属性的说明:

自定义数据属性是没有命名空间的属性,其名称以字符串"data-"开头,后面至少有一个字符,符合XML命名格式,且不包含在U+0041到U+005A(LATIN CAPITAL LETTER A到LATIN CAPITAL LETTER Z)范围内的字符。

自定义数据属性旨在存储页面或应用程序私有的自定义数据,没有更合适的属性或元素可用来存储这些数据。

J.Stewart指出,文档中只是要求data-后面的字符串必须符合XML命名格式(ASCII字母、数字但不能以数字开头、短横线等),并且要求是"XML兼容"的(文档中有关于这个术语的链接),但不允许使用大写字母,而在XML兼容的标签/属性中是允许使用大写字母的。

解决方法就是遵循W3C的规范,给自定义属性加上data-前缀,并确保属性的命名符合XML命名格式,并且不包含大写字母。这样可以确保自定义属性的兼容性和正确性。

0
0 Comments

在HTML中,如果你想要使用自定义属性,你应该使用data-*的格式。jQuery已经内置了处理这些属性的功能,并且这也是标准的做法。

一个示例是:<input type="submit" value="submit" data-custom-item-id="137" />

这里有一篇博文讨论了data属性:http://ejohn.org/blog/html-5-data-attributes/

感谢你的回复,但我想知道为什么使用data-XXX是可以的,而不是自己编写属性。这只是一种约定吗?还是会破坏跨浏览器兼容性之类的问题?

这不仅仅是一种约定——实际上,这是HTML5规范中的内容,用于在需要自定义HTML属性时使用。w3.org/html/wg/drafts/html/master/dom.html#attributes

0