HTML 5:你必须知道的data属性

原文:All You Need to Know About the HTML5 Data Attribute

译文:你必须知道HTML 5 的Data属性

译者:dwqs

HTML 5的Data属性可以让你给元素自定义数据。这篇文章就是思考怎么更好的使用Data属性。

介绍

HTML 5之前,我们必须依赖于class和rel属性来存储需要在网站中使用的数据片段,这种做法有时会在网站的外观和实用性之间产生冲突。而HTML 5 Data属性的存在就能很好满足需要。

随着网站自身的数据越来越多,一些特定的元素也开始保存数据了。比如,要创建一个audio应用,代码如下:

<audio controls="controls">
  <source src="track1.mp3" type="audio/mpeg" />
</audio>

上面的代码是完全能够接受的,但是有时我们需要保存时长、速度和作者等更多关于音频本身的信息,而不是音频来源。这就需要用到Data属性了,示例如下:

<audio controls="controls">
  <source src="track1.mp3" type="audio/mpeg" data-duration="1min5secs" data-tempo="125bpm" data-artist="The Beatles" />
</audio>

通过这些自定义的Data属性,就能够对audio执行搜寻、过滤以及分组等动作。

怎么使用Data属性

自定义的Data属性的名字必须以data-开头,并且连字号后面至少要有一个符合HTML规范的字符。(HTML naming convention.)

W3C文档对Data属性的说明如下:

Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.

这也意味着我们只能在应用程序内部使用data数据,而不应该将它呈现给用户。更重要的是你可以给元素自定义任何数量的Data属性,并赋予任何有意义的值。

什么时候需要使用Data属性?

通过上面的讲述,已经知道怎么使用Data属性了。但为了更好地了解这个属性,再看几个例子。

在Tuts+的Webdesign板块已经有了很好地、关于使用data属性的例子。One of the tuts,将Data属性运用到样式中,让菜单有一个“气泡”通知效果。在这个示例中,data属性被用于只想气泡通知的值。

<a href="#" class="pink" data-bubble="2">Profile</a>

另外一个示例:quick tip,Data属性作为提示信息是怎么被用于提示框的

<a href="#" class="tooltip" data-tip="this is the tip!">This is the link</a>

什么时候不该用Data属性?

当元素已经建立或者更适当的属性时,就不应该用Data属性了。在下面这个示例中运用data是不合适的:

<span data-time="20:00">8pm<span>

因为在一个表示时间的元素中,已经有一个datetime属性了:

<time datetime="20:00">8pm</time>

同时,Data属性不应该被用作一个可替代的元数据或者微格式。微格式主要是为人类设计的、用于介绍上下文信息的。比如,如果你有一张关于个人或者某个组 织联系信息的Vcard,你应该赋予一个名为vcard的class属性,让机器明白它包含了一些联系的信息。

利用微格式的代码如下:

<div class="vcard">
    <span class="fn " >Aaron Lumsden</span>
</div>

相反,利用Data属性的代码如下:

<div class="vcard">
    <span data-name="Aaron Lumsden " >Aaron Lumsden</span>
</div>

了解更多关于微格式的信息:Mircorformats.org.

在CSS中使用Data属性

既然在HTML标记中实现了Data属性,那么也可以在CSS中使用这个属性了。注意:尽管在某些情况下更适合直接使用Data属性,那也不应该对任何样式规则直接使用该属性。简单的使用如下:

[data-role="page"] {
  /* Styles */
}

在JQuery中使用Data属性

在JQuery中怎么使用Data属性呢?JQuery提供了很多种从元素获取数据的方式。例如,像下面这样:

<a href="http://www.google.com" class="button" data-info="The worlds most popular search engine">Google</a>

如果有一个和上面类似的锚文本标记,有一个名为data-info的data属性,利用下面的方式,可以获取任何一个属性,包括data-info

$(‘.button‘).click(function(e) {
   e.preventDefault();
   thisdata = $(this).attr(‘data-info‘);
   console.log(thisdata);
 });

原文首发:http://www.ido321.com/1304.html

下一篇:大型网站系统架构演化之路

时间: 2024-10-02 15:17:43

HTML 5:你必须知道的data属性的相关文章

《你必须知道的.NET》读书笔记:从Hello World认识IL

通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础. 一.IL基础概念 1.1 什么是IL? IL是.NET框架中间语言(Intermediate Language)的缩写.使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermediate Language)的代码. 1.2 为何要了

(转)【推荐】初级.NET程序员,你必须知道的EF知识和经验

转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验 阅读目录 [本文已下咒.先顶后看,会涨工资的哦 :)] 注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql. 虽然我们可以使用SQL Server Pro

《你必须知道的.NET》读书笔记一:小OO有大智慧

此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象  (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初始化,这样一个对象实体就完成了出生过程. Person aPerson = new Person("小周" , 25); (2)旅程:在某种程度上就是外界通过方法与对象交互,从而达到改变对象状态信息的过程.这也和人的生存之道暗合. aPerson.ChangeName("Edis

《你必须知道的.NET》读书笔记三:体验OO之美

一.依赖也是哲学 (1)本质诠释:"不要调用我们,我们会调用你" (2)依赖和耦合: ①无依赖,无耦合: ②单向依赖,耦合度不高: ③双向依赖,耦合度较高: (3)设计的目标:高内聚,低耦合. ①低耦合:实现最简单的依赖关系,尽可能地减少类与类.模块与模块.层次与层次.系统与系统之间的联系: ②高内聚:一方面代表了职责的统一管理,一方面又代表了关系的有效隔离: (4)控制反转(IoC):代码的控制器交由系统控制而不是在代码内部,消除组件或模块间的直接依赖: (5)依赖注入(DI): ①

10个你必须知道的jQueryMobile代码片段(转)

1.在列表项和按钮上禁用文本截断      如果你的列表项或者按钮上是一个很长的文本,它将会被jQuery Mobile自动截断,要禁用这个截断设置,需要在CSS选择器上添加属性"white-space:normal".例如,在按钮禁止截断:      .ui-btn-text{           white-space:normal;      }      在列表项上禁止截断:      .ui-li-desc{           white-space:norma;     

《你必须知道的.NET》读书实践:一个基于OO的万能加载器的实现

此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.关于万能加载器 简而言之,就是孝顺的小王想开发一个万能程序,可以一键式打开常见的计算机资料,例如:文档.图片和影音文件等,只需要安装一个程序就可以免去其他应用文件的管理(你让其他耗费了巨资打造的软件情何以堪...),于是就有了这个万能加载器(FileLoader). 初步分析之后,小王总结了这个万能加载器的功能点如下: (1)能够打开常见文档类资料:txt.word.pdf.visio等: (2)能够打开

你必须知道的ADO.NET(九) 深入理解DataAdapter(下)

摘要 由于各种原因,很久没有更新博客了!期间,几分迷茫,几分失落.令人欣慰的是,园子里还有很多热心的读者,都期待我更新博客.想到自己的文章,能对园友有所帮助,我又重拾久违的文笔,娓娓道来,朴实而不做作.在上一篇文章<你必须知道的ADO.NET(八) 深入理解DataAdapter(上)>中,我主要介绍了DataAdapter的工作原理以及基本功能.在本文中,我将通过实例的方式讲解如何使用DataAdapter对象. 目录 如何构造一个DataAdapter对象? 填充数据到DataSet 总结

从零开始学习jQuery(剧场版) 你必须知道的javascript

原文:从零开始学习jQuery(剧场版) 你必须知道的javascript 一.摘要 本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascript细节.  适合希望巩固javascript理论知识和基础知识的开发人员阅读.   二.前言 最近面试过一些人, 发现即使经验丰富的开发人员, 对于一些基础的理论和细节也常常会模糊. 写本文是因为就我自己而言第一次学习下面的内容时发现自己确实有所收获和感悟.  其实我们容易忽视的javascrip

转15个必须知道的chrome开发者技巧GIF

在Web开发者中,Google Chrome是使用最广泛的浏览器.六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备的工具.你可能已经熟悉了它的部分功能,如使用console和debugger在线编辑CSS.在这篇文章中,我们将分享15个有助于改进你的开发流程的技巧. 一.快速切换文件 如果你使用过sublime text,那么你可能不习惯没有Go to anything这个功能的覆盖.你会很高兴听到chrome开发者功能也有这个功能,当DevTools被打开的时候,按C