首页 > 解决方案 > HTML5 中的 data-* 属性

问题描述

正在阅读关于 Mozilla 的一篇关于数据属性的文章。文章说您可以使用 data-* 属性来存储有关元素的额外信息。例如:

<article
  id="electriccars"
  data-columns="3"
  data-index-number="12314"
  data-parent="cars">
...
</article>

问题:

他们的唯一目的是将自定义元数据添加到 HTML 元素还是有其他用例?

标签: html

解决方案


如何以 Angular 作为框架创建和使用自定义属性的示例(演示用例)

HTML:

<button id="monitorBtn-{{machine.id}}">
     <span ng-show="!$ctrl.isMonitored(machine)">
         StackOverFlow
     </span>
</button>

JS:

var element = angular.element("#monitorBtn-"+machine.id);
element.attr("tooltip","Your Tooltip Text"); // <-- setting custom attr
element.attr("flow","up");
console.log(element);

这会将一个属性附加到按钮类,如下所示:

<button id="monitorBtn-{{machine.id}}" tooltip="Your tooltip Text" flow="up" ....>

当然:这个自定义类是用CSS4生成的。

CSS:

:root {
    --bg: #05a8ff;
    --dink: 7px;
}

[tooltip] {
    position: relative;
}
[tooltip]:not([flow])::after,
[tooltip][flow^="up"]::after {
    bottom: calc(100% + var(--dink));
}

这绝不是问题的答案,我认为这个问题没有真正的答案。它非常广泛,但我将发布此代码以让您了解 data-* attrs 如何在不同语言中工作的用例,以及 HTML 为何接受它们。


推荐阅读