HTML5 微数据

一、什么是微数据

一个页面的内容,不仅要给用户看,还要让机器可识别。而目前机器智能程度有限,要让其知会特定内容含义,我们需要使用规定的标签、属性名以及特定用法等。如使用 <h1> 标签包裹页面标题信息就是为了让机器识别(搜索引擎 SEO)

微数据本质是给网页中可见的数据提供附加语义的标准化方式。允许我们在网页元素中嵌入自定义属性。是为了方便机器识别而产生的东西。适合于精细地优化那些已经在 DOM 中的数据的语义性。

如在 spandiv 标签内添加属性,让机器识别其特定类型的信息,例如评论、人物信息或事件都有相应的属性,用来描述其意义。

HTML5 微数据规范是一种标记内容以描述特定类型的信息,每种信息都有描述特定类型的项。

二、微数据中的概念

微数据使用来自自定义的词汇表的、带作用域名/值对来给 DOM 做标记

2.1 作用域

微数据重用了 DOM 本身的层级结构,提供了一种方式来表达“所有该元素的属性都来自这个词汇表”。允许在同一个页面使用多个微数据词汇表,甚至可以将词汇表嵌套,完全和 DOM 结构用法一样。

作用域,就是指定元素为微数据的项目,各个项可以嵌套,类似于 DOM 结构,是一个命名空间

2.2 词汇表

指向一个网址 URL,并不一定实际存在(实际存在最好),定义微数据使用的词汇的命名空间。

微数据词汇表有三:schema.org 词汇表Google丰富摘要词汇表,WHATWG / microformats.org词汇表。

词汇表,就是指定微数据项目的类型,声明作用域的名称。

2.3 数据模型

微数据的数据模型是名/值对,一个微数据的属性名总是声明在一个 HTML 元素上,相对应的属性值则从 DOM 中取得。

在项里的元素添加属性名,就会成为所在的项目里的属性,属性值是文本或者其他数据。

三、微数据的语法

通过对下面例子的改造讲解:

<section>
  <h1>destiny</h1>
  <p>![](http://upload-images.jianshu.io/upload_images/7295449-c6767031a780189f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</p>
  <p><a href="http://destinytaoer.cn">blog</a></p>
</section>

3.1 itemscope 项目的作用域

声明元素为一个项目,包含至少一个属性。

<section itemscope>
  <h1>destiny</h1>
  <p>![](http://upload-images.jianshu.io/upload_images/7295449-c6767031a780189f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</p>
  <p><a href="http://destinytaoer.cn">blog</a></p>
</section>

3.2 itemtype 项目的类型

微数据定义的类型。其值为 URL,用于引入一个微数据词汇表可以使用 http://schema.org 或是 http://data-vocabulary.org 域名

<section itemscope itemtype="http://data-vocabulary.org/Person">
  <h1>destiny</h1>
  <p>![](http://upload-images.jianshu.io/upload_images/7295449-c6767031a780189f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</p>
  <p><a href="http://destinytaoer.cn">blog</a></p>
</section>

3.3 itemprop 项目的属性

添加一个数据项目属性。任何微数据属性都可以重复,只要各自的值位于不同的 HTML 元素中。

<section itemscope itemtype="http://data-vocabulary.org/Person">
  <h1 itemprop="name">destiny</h1>
  <p>![](http://upload-images.jianshu.io/upload_images/7295449-c6767031a780189f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</p>
  <p><a itemprop="url" href="http://destinytaoer.cn">blog</a></p>
</section>

3.4 属性值

数据属性对应的属性值是元素中的某个属性或者文本的值

  • content 属性

    • <meta itemprop="" content="">
  • src 属性

    • audio
    • embed
    • iframe
    • img
    • source
    • video
  • href 属性

    • a
    • area
    • link
  • data 属性

    • object
  • datetime 属性

    • time
  • 文本内容

    • 其他所有元素

3.4 嵌套项与多属性

在包含 itemprop 的元素中添加 itemscope 插入嵌套项。

<span itemprop="members" itemscope>S˙H˙E
  <span itemprop="name">任家萱</span>
  <span itemprop="name">田馥甄</span>
  <span itemprop="name">陈嘉桦</span>
</span>

项目可以包含不同值的多个相同属性。如上例

同一个元素同样也可以有多个属性关键名称,用空格分隔。

<p itemscope>
  <span itemprop="name call">destiny</span>
</p>

3.5 itemref 页面内引用

允许微数据项目通过指向特定 ID(含有需要属性的元素)包含非后代属性。

<p itemscope itemref="band-members">
  <span itemprop="name">S˙H˙E</span>
</p>
……
<span id="band-members" itemprop="members" itemscope>S˙H˙E
  <span itemprop="name">任家萱</span>,
  <span itemprop="name">田馥甄</span>和
  <span itemprop="name">陈嘉桦</span>
</span>

含有 itemref 属性的元素项目会把 itemref 指定 id 的项目包含进来。

3.6 标注不可见数据

如果你想添加的文本并不是页面内容的一部分,你可以在 <meta> 元素上使用 content 属性:<meta itemprop="" content="">

但是某些浏览器会自动把 <meta> 元素移动到 head 标签中。比较靠谱的做法是使用 itemref 做页面内引用,这样即使浏览器移除了,还是能够识别出微数据。

<p itemscope>
  <span itemprop="name" itemscope itemref="meta-likes">
   钟欣桐
    <meta id="meta-likes" itemprop="likes" content="twins成员">
  </span>
  摄影爱好者陈老师的粉丝。
</p>

注意:应当尽可能的使用可见数据,因为不可见的数据,往往会被忽略,更新时忘记修改。可以将不可见数据紧挨着它所描述的可见文本后面,可以起到一定提醒作用。

3.7 itemid 全局标识符

允许词汇表给微数据项目定义一个全局标识符。
如书的 ISBN 数值

<p itemscope itemtype="http://vocab.example.com/book"  itemid="urn:isbn:0321687299">
  <!-- 书信息… -->
</p>

四、词汇表

以 Google 丰富摘要词汇表( data-vocabulary.org )为例。

4.1 Person 人物

设置 itemtype="http://data-vocabulary.org/Person"

包含属性有:

  • name 姓名
  • nickname 昵称
  • photo 头像,图片链接
  • title 头衔、职称
  • role 角色 (如:会计)
  • url 个人网址,定义比较宽松
  • affiliation 相关的组织名称(如:雇主、公司)
  • friend 朋友(表示与另外一人的社会关系)
  • contact 联系方式(表示与另外一人的社会关系)
  • acquaintance 熟人关系(表示与另外一人的社会关系)
  • address 位置地址,可以是一个项目

4.2 Address 地址

Person 词汇表定义了 address 属性,而 address 本身也是微数据项目,有自己的词汇表:设置 itemtype="http://data-vocabulary.org/Address"

包含属性有:

  • country-name 国家
  • region
  • locality 县、地区
  • street-address 街道地址
  • postal-code 邮政编码

对于没有定义属性的地址,如:镇,可以写入 locality 属性中。

注意:一般地址只用一个标签包含,为了微数据的应用,应当为各个对应属性增加一个标签包含。虽然增加了标签,但这样做是值得的。其他情况也是如此

4.3 Organization 组织

设置 itemtype="http://data-vocabulary.org/Organization"

包含属性有:

  • name 组织名称
  • url 组织主页链接
  • address 组织地址,可以是一个项目
  • tel 组织的电话号码
  • geo 地理位置坐标,可以是一个项目

4.4 Geo 地理位置

设置itemtype="http://data-vocabulary.org/Geo"

包含属性有:

  • latitude 纬度
  • longitude 经度

一般使用不可见标注方式

4.5 Event 事件

设置itemtype="http://data-vocabulary.org/Event"

包含属性有:

  • summary 事件名称
  • url 事件详情链接
  • location 事件发生或活动举行的地点或场所,可以有一个嵌套的组织或者地址来表示
  • description 对事件的描述
  • startDate 开始日期和时间,ISO 格式:2009-11-06T08:30+01:00
  • endDate 结束日期和时间,ISO 格式
  • duration 事件持续时间,ISO 格式
  • eventType 事件类型(如讲座、音乐会等)
  • geo 事件的地理位置,可以是一个项目
  • photo 事件相关图片链接

4.6 Review 点评

设置itemtype="http://data-vocabulary.org/Review"

包含属性有:

  • itemreviewed 被点评的项目名称,可以是产品、服务、商家等
  • rating 对该项目的数字质量评级,默认档次从 1 到 5,也可以前嵌套一个 Rating 项目
  • reviewer 点评者姓名
  • dtreviewed 点评日期,ISO 格式
  • summary 关于点评的简要说明
  • description 点评详细描述

4.7 Rating 等级

设置itemtype="http://data-vocabulary.org/Rating"

包含属性有:

  • value 获得的评级
  • worst 最差的等级,0
  • best 最好的等级
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,597评论 18 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,457评论 25 707
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,864评论 6 13
  • 应付上面检查, 下午的时间全用在自查表格去了 一事无成,浪费光景 火箭上天,有个”逃逸速度“ 低于这个速度,火箭会...
    大王派我来巡山000阅读 393评论 0 0