如何使用此自定义HTML属性?

时间:2017-12-02 20:08:12

标签: html css

我打开了devdocs.io的源代码并看到了这一行:

<button type="button" aria-label="Back" class="_header-btn" data-back hidden>

我已经阅读了带有data前缀的自定义HTML属性,但我对此处的使用感到困惑。首先,data-back属性没有任何值。其次,我完全不理解hidden的事情。这背后的原因是什么?

1 个答案:

答案 0 :(得分:2)

每当您在网络上遇到某些内容并且您无法理解它是如何工作的时候,如果您在未经过任何研究的情况下询问它,那么您的问题将会吸引掉投票,并且不太可能提供高质量的答案。这是正常的,如果你想一想......而不是(重新)搜索自己,你要求别人为你做。随之而来......

HTML允许在任何标准或自定义标记上声明任何属性,除了已经是规范的一部分。除名称冲突和命名标准外,没有限制。

这是命名属性的the spec

JavaScript和CSS都可以根据属性名称和值添加功能或更改DOM元素的显示规则和/或行为。

除此之外,某些库(例如jQuery)已经定义了方法来方便地获取/设置DOM元素的属性,只要它们遵循一些基本的命名模式。其中最常用的是data-* $.data()是一个jQuery的方法集合,旨在...

  

存储与匹配元素关联的任意数据,或者在指定数据存储中返回匹配元素集中第一个元素的值。

其他库使用某些命名模式为DOM元素添加额外的功能和逻辑(即:ng-*用于AngularJS)。 Angular(v2及更高版本)中使用的另一个有趣的命名模式是[prop]=""模式,它允许用户直接将值绑定到与标记关联的DOM对象的JavaScript属性。
例如,

<span [style]="{color:'red'}">I'd be red in Angular 2+</span>

...将使与style.color关联的DOM元素的<span>属性具有值"red",其行为与style="color:red;"相似但访问DOM元素的JavaScript属性直接,其中很酷的部分是[prop]=""中的引号之间的任何内容都被Angular评估为JavaScript,并且评估的结果被映射到DOM元素的相应属性。

根据您的具体代码:

<button type="button" aria-label="Back" class="_header-btn" data-back hidden>

...,data-back是在标记上声明的自定义空属性。定义属性足够时使用空属性,不需要value。这一切都在上面链接的规范中。

hidden是标准属性。

总之,在使用HTML时,属性是一个非常强大的工具,因为它允许开发人员向标准或自定义标记添加自定义功能和行为。