博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML 5:你必须知道的data属性
阅读量:4286 次
发布时间:2019-05-27

本文共 1666 字,大约阅读时间需要 5 分钟。

     原文:

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

     译者:dwqs

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

    介绍

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

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

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

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

     怎么使用Data属性

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

           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属性的例子。,将Data属性运用到样式中,让菜单有一个“气泡”通知效果。在这个示例中,data属性被用于只想气泡通知的值。

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

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

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

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

           利用微格式的代码如下:

Aaron Lumsden

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

Aaron Lumsden

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

     在CSS中使用Data属性

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

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

     在JQuery中使用Data属性

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

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

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

原文首发:

下一篇:

转载地址:http://ektgi.baihongyu.com/

你可能感兴趣的文章
关于【端口号被占用的问题的解决办法】
查看>>
FFmpeg视频剪辑拼接
查看>>
简单封装Http的Get和Post请求
查看>>
利用Lambda解决蓝桥杯【消除尾一】问题
查看>>
由size_t引发的思考
查看>>
QT水费管理系统 ——纯C++开发
查看>>
PHP调用科大讯飞语音服务
查看>>
mui.ajax使用注意事项
查看>>
repo简介
查看>>
父类指针访问子类私有对象
查看>>
Windows CMD.exe 系统找不到指定的路径
查看>>
SpringBoot电商项目实战 — 商品的SPU/SKU实现
查看>>
SpringBoot电商项目实战 — ElasticSearch接入实现
查看>>
精选的10款Java开源项目,建议收藏
查看>>
Zookeeper+dubbo分布式开发学习(一)
查看>>
JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现
查看>>
Could not parse multipart servlet request; nested exception is java.io.IOException
查看>>
Java面试题汇总---基础版(附答案)
查看>>
Java面试题汇总---升级版(附答案)
查看>>
分布式文件系统之FastDFS文件服务器原理及搭建
查看>>