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

摘要:
在引入HTML5之前,我们必须依赖class和rel属性来存储需要在网站中使用的数据片段。这种做法有时会在网站的外观和实用性之间产生冲突。HTML5Data属性的存在可以很好地满足需求。更重要的是,您可以为元素自定义任意数量的Data属性,并为其分配任何有意义的值。通过以上描述,您已经知道如何使用Data属性。在Tuts+的Web设计部分,有使用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应用,代码如下:

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

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

<audiocontrols="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属性被用于只想气泡通知的值。

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

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

<ahref="#" class="tooltip" data-tip="this is the tip!">This is the link</a>
什么时候不该用Data属性?
当元素已经建立或者更适当的属性时,就不应该用Data属性了。在下面这个示例中运用data是不合适的:
<spandata-time="20:00">8pm<span>

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

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

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

利用微格式的代码如下:

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

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

<divclass="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提供了很多种从元素获取数据的方式。例如,像下面这样:

<ahref="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

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

免责声明:文章转载自《HTML 5:你必须知道的data属性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇编程珠玑第三章pycharm的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MUI 学习---页面跳转;页面传参;接口数据请求;页面数据绑定;构建点击事件;回调刷新;数据列表支持从右向左滑动触发删除;拨打电话

1、页面跳转、页面传参、构建点击事件 /*给ul 下面的li 添加点击事件*/ mui('ul').on("tap", "li", function() { //获取html页面中data-item中的item对象 var obj = this.dataset.item;...

Oracle中的BLOB和CLOB【转载】

原文地址:http://jelly.iteye.com/blog/65796 一、区别和定义       LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列   LONG RAW: 可变长二进制数据,最长2G  CLOB:  字符大对象Clob 用来存储单字节的字符数据   NCLOB:...

10 : mysql 主从复制

延时从库 主从复制很好的解决了物理损坏,但是如果主库有个误删除写入的操作怎么办? 正常情况下从库也会同步这个错误的,企业中应该怎么避免这个情况?这个时候就需要使用延时同步来解决: 延时从库?delay(延时)从节点同步数据。 对SQL线程进行延时设置。IO线程正常的执行。企业中一般延迟3-6小时 延时从库的配置过程:mysql>stop slave;...

jquery或者javascript将list转array数组_快速开发平台

jquery或者javascript将list转array数组,软件开发平台软件开发过程中经常会碰到后台传过来的list数据模型要转换成array数组的情况,那么我们该怎么去做呢? 如上图是转换后的表现形式。 解决方案,for循环进行赋值转换。如下代码段: $.getJSON('GetSCKBNum', function (da...

DataFrame和python中数据结构互相转换

楔子 有时候DataFrame,我们不一定要保存成文件、或者入数据库,而是希望保存成其它的格式,比如字典、列表、json等等。当然,读取DataFrame也不一定非要从文件、或者数据库,根据现有的数据生成DataFrame也是可以的,那么该怎么做呢?我们来看一下 DataFrame转成python中的数据格式 转成json DataFrame转成json,...

react dva发送请求详解(转)

1,在jsx页面派发任务,可以在componentWillMount的生命周期内,使用this.props.dispatch方法派发,需要先引用connect模块,不引用会报错 import { connect } from 'dva'; 在类中操作: class 类名 extends React.Component { constructor(pro...