用于添加自定义注释数据的语义HTML元素

时间:2016-01-20 07:53:56

标签: html html5 semantic-web schema.org rdfa

假设我有一个HTML段落,我对注释感兴趣(即添加一些不应该显示的上下文,只是为文本添加含义)

<p>The ultimate measure of a man is not where he stands 
in moments of <tag data="some custom annotation">comfort and convenience</tag>,
but where he stands at times of challenge and controversy.</p>

在这种情况下应该使用哪种正确的语义标记?

3 个答案:

答案 0 :(得分:1)

您不使用特定的HTML标记,而是使用语义标注。您有两种选择:MicrodataRDFa

两者都有similar capabilities并且搜索引擎抓取工具都能理解。这就是说Google支持Microdata。

对于即用型示例,您可以参考schema.org website。每个术语定义都显示了两个序列化的用法。你的HTML可能是:

微数据

<p itemscope itemtype="http://schema.org/Person">
  The ultimate measure of a man is not where he stands in moments of 
  <span itemprop="description">comfort and convenience</span>,
  but where he stands at times of challenge and controversy.
</p>

RDFa的

<p vocab="http://schema.org/" typeof="Person">
  The ultimate measure of a man is not where he stands in moments of 
  <span property="description">comfort and convenience</span>,
  but where he stands at times of challenge and controversy.
</p>

正如您所看到的,我只是使用<span>来封装带注释的文本。其他那些RDFa和Microdata并没有那么不同。

另外,请查看RDF Translator app。它会帮助你摆弄你的注释。

答案 1 :(得分:1)

这种情况有一个特定的标签,指定语义而不显示内容。这是使用带有metaitemprop属性的content标记完成的,并在schema.org的“使用入门”部分进行了详细说明:

  

3c上。缺失/隐含信息:使用带内容的元标记

     

有时,网页上的信息对标记很有价值   起来,但由于它的方式,信息不能被标记   出现在页面上。信息可以在图像中传达(for   例如,用于表示5分中4分的图像或Flash   对象(例如,视频剪辑的持续时间),或者可能是   隐含但未在页面上明确说明(例如,   价格的货币)。

     

在这些情况下,请使用元标记和content属性   指定信息。考虑这个例子 - 图像显示用户a   4总分5星评级:

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <img src="four-stars.jpg" />
  Based on 25 user ratings
</div>
     

再次举例说明了评级信息。

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <div itemprop="reviews" itemscope itemtype="http://schema.org/AggregateRating">
    <img src="four-stars.jpg" />
    <meta itemprop="ratingValue" content="4" />
    <meta itemprop="bestRating" content="5" />
    Based on <span itemprop="ratingCount">25</span> user ratings
  </div>
</div>
     

应该谨慎使用这种技术。仅使用带有内容的元数据来获取无法标记的信息。

答案 2 :(得分:0)

您可以考虑使用“自定义数据属性”。例如:<p data-custom-name="any-value">...</p>

请参阅: https://html5doctor.com/html5-custom-data-attributes/https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes