用CSS隐藏微数据是否可以?

时间:2012-01-18 00:15:39

标签: html html5 microdata

假设我有一些带有大量文本的html文档。是否“好”(〜不坏:))包含微数据的元素并隐藏这些元素以便用户实际看不到它们?

假设我有这个:

<div style="display:none" itemscope...>some microdata describing div below</div>
<div> There is actual text that is described by microdata</div>

关键是这样可以更容易地描述第二个div。您不必在整个文本中进行更改,只需添加一些元素并隐藏它们即可。我想创建支持创建微数据的简单HTML编辑器,这种方式似乎更容易实现,个人更容易使用(首先创建实际内容,然后对其进行注释)。

6 个答案:

答案 0 :(得分:33)

schema.org有一个“隐藏”微数据的实际方法:

http://schema.org/docs/gs.html#advanced_missing

如果您试图影响搜索引擎优化,那么从用户“隐藏”您的语义标记数据,但保持机器可读性(对于机器人/蜘蛛)并不会破坏目的。

如果您的schema.org标记格式正确,那么如果您“隐藏”这些值,Google就不会惩罚您的索引排名。

答案 1 :(得分:7)

隐藏使用Microdata标记的内容有点失败,它旨在添加有关页面上已经显示的内容的其他信息。对此的主要论点是人们总是记得更新可见内容,但经常忘记更新他们看不到的内容,因此隐藏的“元”内容经常过时且不准确。相反,Microdata采用描述可见内容 的方法,因此如果内容更改了它产生的数据,则会发生变化。举个例子from the spec

<h1 itemprop="fn">
  <span itemprop="n" itemscope>
    <span itemprop="given-name">Jack</span>
    <span itemprop="family-name">Bauer</span>
  </span>
</h1>

如果更改可见内容,则微数据标记实际上不会发生任何变化:

<h1 itemprop="fn">
  <span itemprop="n" itemscope>
    <span itemprop="given-name">Tim</span>
    <span itemprop="family-name">Berners-Lee</span>
  </span>
</h1>

所以Microdata几乎肯定不是你想要在你的情况下使用的。你真正应该使用的取决于你想要这些信息的确切内容。如果您要添加隐藏数据以便在网站上使用脚本进行处理,请使用data-* attributes。如果您要添加并非所有用户都需要查看的其他描述性信息,请考虑使用ARIA。特别是在您的情况下,aria-describedby

答案 2 :(得分:7)

schema.org,因此谷歌在[1]中正式陈述,你不应该标记隐藏的内容:

  

除隐藏文字外,更多更好。一般来说,越多   你标记的内容越多越好。但是,作为一般规则,你   应仅标记访问&gt;的人可见的内容网页,而不是隐藏的div或其他隐藏页面中的内容   元件。

您也可以使用正文中的linkmeta html标记来标记用户不可见的内容:

您希望使用元标记隐藏微数据。

例如,

<div itemscope itemtype="http://schema.org/Product">
    <span itemprop="name">Funky Skirt</span>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="price" content="100.00" />
        <link itemprop="availability" href="http://schema.org/InStock" />In stock
    </div>
</div>

[1] http://schema.org/docs/gs.html

答案 3 :(得分:5)

您可以使用元标记,如下所示:

<meta itemprop="VALUE" content="CONTENT" />

<meta itemprop="priceCurrency" content="USD" />

https://schema.org/docs/gs.html#advanced_missing

答案 4 :(得分:1)

你打算用隐藏的数据做什么吗?我会使用HTML注释或title属性。

HTML评论:

<!-- This is an HTML Comment -->
<div>Content</div>

标题属性:

<div title="some information describing div">Content of div</div>
当然,HTML注释就像编程语言中的注释一样,除了它们传递给客户端。标准title元素属性(适用于所有html元素)包含有关元素的额外信息,并在悬停在元素上时用作工具提示。

例如,您接受率的HTML是:

<div class="accept-rate cool" title="this user has accepted an answer for 4 of 6 eligible questions">67% accept rate</div>

如果你将鼠标悬停在它上面,则说“此用户已接受6个符合条件的问题中的4个答案”。

答案 5 :(得分:0)

如果我们在谈论Google的处罚,您必须仔细阅读您正在处理的丰富网页摘要类型的文档。

例如,如果我采用产品丰富的代码段,请按照文档(https://support.google.com/webmasters/answer/146750?hl=en#offer_properties)仅指定字段: Google会在隐藏时忽略以下产品标记的特定机器可读值,Google不会忽略这些值:

  • 类别
  • priceValidUntil
  • priceCurrency
  • 标识符
  • 条件

因此,这些字段的最佳方法是在元标记中使用它们。