2012-01-18 73 views
19

比方说,我有一些文字很多的html文档。它是“好的”(〜不坏:))具有包含微数据的元素并隐藏这些元素以便用户不会真正看到它们?可以用CSS隐藏微数据吗?

比方说,我有这样的:

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

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

回答

7

用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> 

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

+3

我有同样的问题;我有4页。我必须将面包屑信息添加到页面,但我不希望这些面包屑在网页上可见。但是,这些数据是通过谷歌丰富的代码片段显示获取的。 – user1769790 2013-08-26 21:49:01

1

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

HTML注释:

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

标题属性:

<div title="some information describing div">Content of div</div> 

HTML注释,当然,就像在编程语言注释,除非他们通过给客户端。标准标题元素属性(可用于所有html元素)包含有关元素的额外信息,并且在悬停在元素上时用作工具提示。

例如,HTML为您的接受率高达有:

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

,如果你在它悬停它说:“该用户已经接受了4 6的资格问题的答案”哪。

+0

谢谢,不幸的是,我需要的微观数据,因为它们将被用于其他目的和微观数据(数据或RDFa等)提供了更好的方法添加一些语义信息比标题或评论 – ladar 2012-01-18 00:48:12

29

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

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

如果你试图影响SEO然后从用户“隐藏”的语义标记的数据,但保持它的机器可读(对于机器人/蜘蛛)完全不能达到目的。

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

+0

你知道Google是否尊重这一点?在我开发的一个网站中,内容的持有者是一个

,它的设计就像一个日历(想要在Google中有丰富的事件摘要),所以事件在各自的日期/日期内是CONTAINED,因此对用户来说是隐含的,它不会没有意义,不能使用 ...否则谷歌正在缩小,因为你只能以一种方式显示事件..... – 2013-06-29 20:08:45

+0

我在问,因为在丰富的格式页面上,他们明确表示这些丰富的片段内容不应该隐藏起来...... – 2013-06-29 20:09:54

+1

@BrenoSalgado Google完全支持并支持Schema.org :) – Swivel 2013-11-27 23:14:09

7

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

越多越好,除了隐藏的文本。一般来说,你标记的内容越多越好。但是,作为一般规则,您应该只标记访问该网页的人员可见的内容,而不是隐藏的div或其他隐藏页面元素中的内容。

您可以使用linkmeta HTML标签也是在身体标记这应该是用户看不到的内容:

你想用meta标签隐藏微数据。

例如,

<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

+0

他们的文档说“一般规则” - 从来不是 - 他们发出的信号是不要尝试使用隐藏内容作为SEO策略的一部分来关键字的东西,或者你徘徊在惩罚领域。您仍然可以为自己的目的使用隐藏的内容,但如果您想要打破“一般规则”,则不要在关键字密度排名尝试中使用。 – 2017-10-07 16:24:20

0

如果我们是在谈论谷歌penalities,您对carefuly阅读丰富网页摘要的文档类型,你正在处理。

例如,如果我走产品丰富网页摘要,文档(https://support.google.com/webmasters/answer/146750?hl=en#offer_properties)以下唯一指定的字段: 谷歌时隐时现对以下产品标签不被谷歌忽略识别特定的机器可读的值:

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

因此,对于这些领域的最好的办法是在meta标签使用它们。