3
<p>...the favourite color of Purple is purple...</p>

第一个“紫色”是公司名称,第二个是颜色名称,

我应该如何根据 html5 规范标记它?

先感谢您

4

2 回答 2

4

您有多种选择:

  1. 保持原样,HTML 并不真正关心与描述文档结构(段落、标题、列表等)无关的语义。如果您确实想表达更详细的文档或应用程序语义,请查看WAI-ARIA
  2. 如果区分紫色这个词作为网站或应用程序的一部分的两种用法对您很重要,那么请使用一个class或多个data-*属性
  3. 如果单词具有规范的机器可读形式,并且您希望计算机以某种方式解析这些值,请使用data元素.
  4. 如果区分这两种用途对于使用您网站内容的用户或系统很重要,请使用 HTML5 的语义可扩展性功能:微数据。(如果您使用 HTML 的 XML 方言,另请参阅:RDFa
  5. 根据您的迫切需要结合上述任何一种方法。

要在这些方法之间做出决定,您应该问自己:

  • 为了什么目的我需要扩展 HTML 的语义词汇?
  • 是供我自己使用,还是我试图发布信息供他人使用?
  • 如果我为他人出版,我将使用什么共享词汇?

代码示例:

类属性

它们的目的是为您的标记添加附加信息,请记住该class属性在 HTML 规范中,而不是CSS 规范中:

<p>...the favourite color of <span class="company">Purple</span>
  is <span class="color">purple</span>...</p>

话虽如此,当然,一旦您以这种方式标记了内容,显而易见的事情就是提供页面工具来执行诸如“突出显示所有公司”之类的操作。人们已经使用class属性作为通用语义扩展机制的基础,但是对于这种极端的方法,请参见微格式

数据属性

这些data-*属性允许您将自定义属性添加到标记中,以便使用脚本进行处理,以确保您不会意外使用自定义属性,然后在未来版本的 HTML 中使用该属性:

<p>...the favourite color of <span data-typeofthing="company">Purple</span>
  is <span data-typeofthing="color">purple</span>...</p>

取决于您页面上的脚本对data-*属性做一些有用的事情,浏览器和其他 Web 客户端将忽略它们。

自定义数据元素

数据元素用于具有不精确的自然语言表达但也具有精确的机器可读表达的事物。假设公司可以通过股票代码唯一标识,RGB 将用于颜色:

<p>...the favourite color of <data value="purp">Purple</data>
  is <data value="rgb(128,0,128)">purple</data>...</p>

浏览器可能不会对data元素做任何特别的事情。您很可能会将data元素与微格式、RDFa 或微数据一起使用。

微数据

使用组织架构

<p>...the favourite color of 
  <span itemscope itemtype="http://schema.org/Organization">
    <span itemprop="name">Purple</span>
  </span>
is purple...</p>

我所知道的颜色没有任何东西,但如果它对你很重要,你总是可以为此发布自己的模式。这种方法只有在有某种共享词汇时才能真正使任何人受益。

于 2012-06-29T01:22:35.473 回答
1

哪个元素?

第一项任务是决定应该使用哪个元素来包含“实体”(公司名称和颜色名称)。很可能你想在span这里使用。如有疑问,请使用span. 在某些情况下(取决于内容)可以使用其他元素:

如果该术语是缩写/首字母缩略词,请使用元素 (除了/ /之外,请使用abbr元素(而不是resp span. )。 bdfni

一个好主意可能是使用该a元素将实体名称链接到相关网页。该rel属性可能会提供额外的元数据(您可以使用relHTML5 规范中列出的值,或微格式 wiki 中的注册rel值),具体取决于内容/上下文。

哪些属性?

看看全局属性

class如果您想使用microformats ,将使用该属性。您当然可以使用其他class名称,但它们只对您自己(文档、CSS、JS)或其他阅读您的标记(文档、抓取)的人有用。

对于像个人/公司名称这样的实体名称,您可能希望将translate属性与no关键字一起使用,因为不应翻译此类名称。

title可能会提供附加信息(请注意,它具有dfn/的特殊语义abbr),但不要依赖它来获取重要信息。

如果lang实体名称是外语,则使用。

如何对内容进行有意义的注释?

有三种流行的选择,也可以一起使用(请参阅此答案(“第三步”)以获得差异的简短摘要):

  • 微格式
  • RDFa
  • 微数据

您可能需要其他元素;如果是这样,请使用span.

于 2012-10-23T18:07:33.090 回答