一、什么是微格式?
微格式是一种轻量级的语义标记方法,它通过复用HTML中现有的 class 属性,为内容添加结构化信息。它不引入新的标签或属性,而是使用一组约定的类名(如 vcard、vevent)来表示特定类型的数据,使得人和机器都能更好地理解页面内容。
微格式的设计哲学
以人为中心:标记对开发者友好,易于阅读和编写。
复用现有标准:基于HTML和CSS,无需学习全新的语法。
渐进增强:即使浏览器不支持,也不会破坏页面显示。
常见用途
类别 | 描述 |
|---|---|
联系人信息(h-card) | 标记个人或组织的联系方式、姓名、照片等 |
日历事件(h-event) | 标记活动的开始时间、结束时间、地点、描述 |
社交关系(XFN) | 通过链接的 rel 属性表示人际关系(如同事、朋友) |
产品信息(h-product) | 标记产品名称、描述、价格、图片等 |
评论/评级(h-review) | 标记用户评价、评分、作者等 |
示例:使用微格式标记一个人
<div class="h-card">
<img class="u-photo" src="avatar.jpg" alt="追风">
<a class="p-name u-url" href="https://example.com">追风</a>
<span class="p-job-title">前端工程师</span>
<span class="p-org">ABC 科技</span>
<span class="p-tel">+86 123-4567-8901</span>
</div>标记 | 描述 |
|---|---|
h-card | 表示这是一个“个人名片”数据块 |
u-photo | 表示照片URL |
p-name | 表示姓名 |
p-job-title | 表示职位 |
p-org | 表示所在组织 |
p-tel | 表示电话号码 |
搜索引擎和解析器能轻松提取出这些信息,用于生成富摘要、导入联系人等场景。
二、什么是微数据?
微数据是HTML5引入的一种标准化结构化数据标记方式,它使用自定义属性(如 itemscope、itemtype、itemprop)在HTML中嵌入机器可读的数据。与微格式不同,微数据通常与 Schema.org 词汇表配合使用,后者提供了涵盖几乎所有领域的丰富类型和属性,支持极其复杂的数据结构。
核心属性解析
itemscope:声明该元素包含一个数据项。
itemtype:指定该数据项的类型,通常是一个Schema.org的URL(如
https://schema.org/Person)。itemprop:标记数据项的属性,属性名由Schema.org定义。
itemid:为数据项提供全局唯一标识符(可选)。
itemref:引用当前页面中其他元素作为数据项的一部分(可选)。
常见用途
类别 | 描述 |
|---|---|
商品/产品(Product) | 标记名称、价格、库存、评价等 |
文章/新闻(Article、NewsArticle) | 标记标题、作者、发布日期、摘要 |
人物/组织(Person、Organization) | 标记姓名、职位、地址、联系方式 |
事件(Event) | 标记活动名称、时间、地点、票价 |
评论/评分(Review、Rating) | 标记评分值、评论内容、作者 |
视频/音频(VideoObject、AudioObject) | 标记时长、上传者、缩略图 |
示例:使用微数据标记一个人(含嵌套组织)
<div itemscope itemtype="https://schema.org/Person">
<img itemprop="image" src="avatar.jpg" alt="破军">
<span itemprop="name">破军</span>
<span itemprop="jobTitle">后端工程师</span>
<span itemprop="worksFor" itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">XYZ 公司</span>
<span itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="addressLocality">北京</span>
</span>
</span>
<meta itemprop="email" content="pojun@example.com">
</div>外层 div 声明了一个 Person 数据项。
内部的 worksFor 属性又嵌套了一个 Organization 数据项,包含组织名称和地址。
meta 标签用于隐藏但提供机器可读的电子邮件地址。
微数据让内容描述变得精确而灵活,非常适合电商、新闻、本地商家等复杂场景。
三、微格式 vs 微数据:全面对比
对比维度 | 微格式 | 微数据 |
|---|---|---|
引入方式 | 基于现有 class 属性,复用CSS类名 | 引入HTML5新属性(itemscope、itemprop等) |
词汇表 | 自有一套有限的约定(如h-card、h-event) | 可扩展,常与Schema.org海量词汇配合 |
复杂度 | 简单轻量,适合常见小型场景 | 更强大,支持嵌套、多值、跨标签引用 |
学习曲线 | 平缓,几分钟即可上手 | 较陡,需要理解Schema.org类型体系 |
支持度 | 较早出现,部分搜索引擎仍支持 | HTML5标准,Google、Bing、Yandex等广泛支持 |
适用场景 | 社交分享、联系人、事件、简单评论 | 电商、文章、食谱、视频、产品、招聘等复杂数据 |
可扩展性 | 有限,仅能使用预定义类名 | 极强,可自定义类型和属性(通过Schema.org) |
与现有代码集成 | 无需修改HTML结构,只需添加类名 | 可能需要添加额外属性,但兼容性好 |
选择建议
若只需为博客、个人站点添加简单的联系人或事件信息,微格式足矣。
若运营电商网站、新闻门户或需要精细化SEO,微数据+Schema.org是首选。
四、与 <figure> 标签的完美结合
<figure> 元素用于表示独立的内容单元,如图片、图表、代码片段、音视频等,通常带有 <figcaption> 作为标题或说明。将微数据应用于 <figure>,可以为这些媒体内容赋予丰富的机器可读语义,使其在搜索引擎、知识图谱中表现更出色。
示例:为图片添加微数据(ImageObject)
<figure itemscope itemtype="https://schema.org/ImageObject">
<img src="architecture.png" alt="微服务架构图" itemprop="contentUrl">
<figcaption itemprop="caption">图5:微服务架构概览</figcaption>
<meta itemprop="name" content="微服务架构图">
<meta itemprop="width" content="800">
<meta itemprop="height" content="600">
</figure>itemscope 和 itemtype 定义数据项为 ImageObject。
contentUrl 指向图片文件。
caption 为图片说明(即 <figcaption>内容)。
name 为图片标题。
width 和 height 通过 <meta> 标签提供,对用户不可见但机器可读。
优点
搜索引擎在图片搜索中可直接显示标题、说明、尺寸等富信息。
社交平台抓取时能生成更丰富的卡片。
辅助技术(虽然支持有限)可获取更多上下文。
更多结合场景
场景一:
产品图片:将 <figure> 包裹的产品图片标记为 Product 类型,并在其中嵌套 Offers 信息。
<figure itemscope itemtype="https://schema.org/Product">
<img src="shoes.jpg" alt="运动鞋" itemprop="image">
<figcaption itemprop="name">轻量跑鞋</figcaption>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price">499</span>
<meta itemprop="priceCurrency" content="CNY">
</div>
</figure>场景二:
视频内容:使用 VideoObject 标记视频时长、上传日期等。
<figure itemscope itemtype="https://schema.org/VideoObject">
<video src="tutorial.mp4" itemprop="contentUrl" controls></video>
<figcaption itemprop="description">HTML5视频教程</figcaption>
<meta itemprop="uploadDate" content="2025-01-15">
<meta itemprop="duration" content="PT10M30S">
</figure>五、为什么需要微格式/微数据?
5.1 搜索引擎优化(SEO)
Google、Bing等主流搜索引擎明确支持微数据和微格式,它们会解析这些标记并用于生成 富摘要(Rich Snippets)。例如:
商品页面显示评分、价格、库存状态。
文章页面显示作者头像、发布时间。
活动页面显示日期、地点、票务信息。
富摘要能显著提升搜索结果页的点击率(CTR),为网站带来更多流量。
5.2 数据互联与知识图谱
结构化数据使网页内容能被更广泛地重用。例如:
浏览器插件可提取联系人信息并一键存入手机。
语音助手(如Siri、Google Assistant)可从页面中获取事件信息并添加到日历。
搜索引擎构建知识图谱时,结构化数据是重要来源,让实体关系更加清晰。
5.3 面向未来的语义网
随着人工智能和物联网的发展,机器对网页内容的理解需求越来越高。微数据和微格式正是构建语义网的基础技术之一,让网页不仅是给人看的,也是给机器“读”的。
5.4 提升可访问性(间接)
虽然微数据本身不直接影响可访问性,但清晰的语义结构有助于辅助技术未来更好地解读内容。例如,屏幕阅读器可能根据 itemprop 提供更准确的导航。
六、实际应用建议与注意事项
6.1 如何开始使用?
微格式:访问 microformats.org 查阅规范,在HTML中添加相应类名。
微数据:
访问 schema.org 查找适合您内容的类型。
在页面中按示例添加 itemscope、itemtype 和 itemprop。
使用 Google 的 Rich Results Test 工具验证标记是否正确。
6.2 注意事项
不要过度标记:只为关键内容添加结构化数据,避免滥用导致被搜索引擎惩罚。
保持内容一致:结构化数据应与页面上可见内容保持一致,不要隐藏虚假信息。
优先使用微数据:对于大多数现代网站,微数据+Schema.org是更强大、更通用的选择。
考虑JSON-LD替代方案:除了微数据,Google也推荐使用JSON-LD(JavaScript对象表示法)嵌入结构化数据,它更简洁且不污染HTML。但对于与HTML元素紧密绑定的场景(如图片、视频),微数据依然合适。
总结
微格式 是一种轻量、易用的语义标记方式,通过复用 class 属性为常见内容(联系人、事件等)添加语义,适合快速集成和简单场景。
微数据 是HTML5标准化的结构化数据方案,配合 Schema.org 丰富的词汇表,能够精确描述各种复杂实体,是构建现代SEO和数据互联的利器。
在 <figure>、<article> 等语义标签中嵌入微数据,可以为图片、视频、文章等独立内容赋予更丰富的机器可读含义,进一步提升内容的可发现性和展示效果。
无论选择哪种技术,目的都是为了让网页内容更智能、更互联。掌握它们,您就为网站打开了一扇通向语义世界的大门,让机器更懂您,也让您的信息走得更远。
彩蛋
文中配有完整示例,点击《微格式与微数据完整示例》即可查看。
