当涉及到标签上的非标准属性时,HTML(也许只是XHTML?)相对严格。如果它们不是规范的一部分,那么您的代码将被视为不符合规范。
但是,非标准属性对于将元数据传递到Javascript可能非常有用。例如,如果假设链接显示弹出窗口,则可以在属性中设置弹出窗口的名称:
<a href="#null" class="popup" title="See the Popup!" popup_title="Title for My Popup">click me</a>
或者,您可以将弹出窗口的标题存储在一个隐藏元素中,例如跨度:
<style> .popup .title { display: none; } </style> <a href="#null" title="See the Popup!" class="popup"> click me <span class="title">Title for My Popup</span> </a>
但是,我对于应该采用哪种方法感到不满意。第一种方法更简洁,我猜想,它不会像搜索引擎和屏幕阅读器那样费劲。相反,第二种选择使存储大量数据更加容易,因此用途更广。它也符合标准。
我很好奇这些社区的想法。您如何处理这种情况?第一种方法的简单性是否大于潜在的缺点(如果有的话)?
我是提议的HTML 5解决方案(带data-前缀的属性)的忠实拥护者。编辑:我想补充一点,也许有更好的例子来使用自定义属性。例如,自定义应用程序将使用的数据在标准属性中没有类似物(例如,基于不一定以className或id表示的内容对事件处理程序进行自定义)。
data-