《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.7 数据属性

简介:

本节书摘来异步社区《移动网页设计与开发 HTML5+CSS3+JavaScript》一书中的第2章,第2.7节,作者:【英】Peter Gasston,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.7 数据属性

HTML5扩展元素含义还可以通过另一种方式:使用数据属性。这些都是用户定义的属性,这些属性的值能提供元素的相关信息,而无需给予机器或人类任何额外的语义。接下来,让我们看看更详细的解释。

假设我们想输出一组数据,其中每一项都有两个值—名称和编号 (例如,独特的数据库ID);我们想将名称显示在文档中,还想让编号可以用于脚本运行中。从目前情况来看,没有相关的属性可以用来存储该信息;我们可能不得不使用这样一个类:

80f2e4bab4a2314551aa87b02bfc298e08178a26

创建数据属性的目的,就是为了将数据相关联。数据属性能像类一样,让你存储这些额外的信息,而不暗含任何额外的意思。每个数据属性开始使用文字数据,然后使用用户定义的唯一键。在我们的示例中,可以使用这个:

37c90624dcd1d8a1f68b86337bb62f50e65faa73

现在,数据属性id与Peter的值关联。虽然该属性没有给元素额外的语义,但是可以为其他进程提供上下文,有关此数据的信息或许和JSON文件相关联,所以,可以使用JavaScript来查询。

2.7.1 数据属性API

使用数据集(dataset)属性的简单DOM API,脚本可以更加容易地获取该数据。若要获取一个数据属性的值,可以将数据值属性和正在查询的属性的键一起使用:

2af62c95159483b88f00006d0d1ec5bf060e0cdc

当我们把它应用于此示例的标记中,返回的结果将是123。我们还可以使用数据集更新属性值:

24db750ee97075098589e4007a7c09a417d362ad

以下示例,演示了它是怎么起作用的:

8d49c034ca8d725ce443505c3ed09b72687066a2

在此示例中,我们执行了三个操作:首先获取id数据,然后将其设置为100,最后再次获取它。每一次都要把结果登录到控制台。输出结果如图2-5所示。

8d9d24c11df31c92da60f771fb68158bc0e2fba3

2.7.2 jQuery和数据属性

如果使用jQuery,与数据属性的互动甚至会变得更简单(如果读者还不知道什么是jQuery,则可以先翻阅第5章中的解释,读完它之后再回到这一节)。下面的例子是使用data()方法获取和设置的数据值:

63bbc88f662fc0a814316dd1595da8217e9858f8

此代码类似于前一节所示的代码,将返回相同的值:123。

然而,不同于数据集以一个字符串的形式返回所有的结果,data()类函数有一大优势:它还要对属性的值进行解析,并将它转换为正确的类型。如果使用前面的示例,该类型会是一个数字。但如果把标记更改为:

1961b707eb8c464814613008672efc5b2b59c46a

再次使用data()类函数:

a4e7ec8307bc9b44d2e7ec5f9ef6cfdf01db4edc

变量name的值是Peter,其类型是一个字符串。

若想看看它是怎么运行的,可以参考示例文件data-attributes-jquery .html.。在该示例文件中,我使用同一标记把两个不同的数据属性相结合:

5ee24515907d338985b12ff045ec2d2080ea2e84

再使用jQuery,把每个数据属性的类型用JavaScript的typeof运算符登录到控制台中:

e6a28308f45bcff63c7c071660d054fe99a79bb0

图2-6显示了输出结果。

a66c1309956734c2f07522c485f0e0e5ad3de0ed

2.7.3 野生数据属性
数据属性如此有用,以至于一些公司已经开始广泛使用它们。Twitter很快就把它们用作一个在网页上添加Twitter按钮的选项,把某些内容相关的参数存储在一组预定义的属性里:

71f42cbcbcc04c31078642135a8e88a0a581dd88

通过在网页上的其他位置包含一个对Twitter的JavaScript的调用,此元素被一个使用所提供数据的Tweet按钮所替换。很多其他的社会服务,如Facebook、Google+和LinkedIn,也采取相同的方式使用数据属性。

相关文章
|
5月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
298 1
|
5月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
264 0
|
5月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
177 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
574 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
183 0
|
10月前
|
人工智能 前端开发 JavaScript
【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家
本文展示了AI编程从概念到实践的革命性突破,以一个CSS代码优化工具为例,说明AI如何在3分钟内完成传统开发需2天的任务。文章详细解析了AI在垂直领域工具开发、高频技术场景覆盖及代码维护优化中的应用,并探讨了智能上下文感知、模式识别优化等核心功能。同时,面对语义理解与逻辑验证等挑战,AI结合开发者补充规则,实现人机协同。最终总结指出,AI编程并非取代开发者,而是助力效率提升,推动“需求即代码”的未来方向,开启软件开发新纪元。
196 4
【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家
|
10月前
|
人工智能 前端开发 JavaScript
【CodeBuddy】三分钟开发一个实用小功能之:CSS渐变背景生成器
这是一个由AI生成的完整CSS渐变生成器项目,具备可视化交互、实时预览和代码生成功能。通过HTML、CSS和JavaScript实现,支持线性与径向渐变,提供随机生成和复制代码功能。项目展示了AI编程助手在快速原型开发、教学辅助和设计系统集成中的应用价值。其智能上下文感知、全链路代码生成和决策能力,为开发者提供了高效工具支持,助力从样板代码中解放创造力。附带优化方向如增强渐变类型、智能推荐系统及工程化改进,进一步拓展了应用场景。
213 2
【CodeBuddy】三分钟开发一个实用小功能之:CSS渐变背景生成器
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
724 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
494 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
274 34

热门文章

最新文章