.screen-reader-text {
position: absolute;
top: -9999px;
left: -9999px;
}
此类可以从页面中移除一个项目,将其移出文档流,并且不会导致溢出滚动。
当目标是隐藏元素的视觉效果但保留其对屏幕阅读器的可访问性时,它比display: none;
甚至visibility: hidden;
更好。
Snook 有一个关于更强大的类的演练,该类考虑了更多的情况。
.element-invisible {
position: absolute !important;
height: 1px; width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
WordPress 使用了一个更强大的类,该类考虑了在元素获得焦点时应显示元素。
.screen-reader-text {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
word-wrap: normal !important;
}
.screen-reader-text:focus {
background-color: #eee;
clip: auto !important;
clip-path: none;
color: #444;
display: block;
font-size: 1em;
height: auto;
left: 5px;
line-height: normal;
padding: 15px 23px 14px;
text-decoration: none;
top: 5px;
width: auto;
z-index: 100000; /* Above WP toolbar. */
}
您好,
出于 SEO 目的,请注意此技术可能导致您被列入黑名单。
您可以隐藏菜单项,诸如此类的东西,但如果您仅仅出于 SEO 目的隐藏一个包含 h1 和锚点的 div,谷歌可能会将您列入黑名单
因此请谨慎使用。
这与您放入 DIV 中的内容有关,而不是与此技术有关。
您还应该使用 top: -9999px; 因为旧版 Opera 的缘故。
这是不好的做法!就是这样!谷歌将完全从其搜索结果中删除您的网站。谷歌已通过网站站长工具一再声明,网页设计师不要将元素放置在屏幕外。如果您需要隐藏元素,请使用“display: none;”属性,而不是“display: hidden;”。如果谷歌因隐藏内容而对您的网站进行处罚,如果您有网站站长工具帐户,他们会通知您,否则您可能根本不会收到任何关于对您的网站采取的手动操作的通知。如果您受到处罚,只需向谷歌提交重新考虑请求,并解释为什么使用“display: none;”属性,并证明其用于合法用途,例如根据用户屏幕的分辨率显示具有不同大小的元素,即 CSS 中的“媒体查询”。
我使用 flexslider,并使用数字作为幻灯片的分页器,1、2、3、4 等,您不能使用“display: none”,否则它也会隐藏您设置为替换数字的图像。Text-indent 会移动数字,允许您显示图像,也允许屏幕阅读器。
我认为此技术没有问题,我已经使用它一段时间了,从未受到处罚。
你们在 2013 年还在谈论隐藏内容?不要再谈论 SEO 了,你们对此一无所知。哈哈。像其他 95% 的人一样,去填充一些 alt“标签”,他们只是重复同样的垃圾。
点击率、跳出率。如果你想知道 SEO,去阅读谷歌的关于页面,并学习一门编程语言,这样你才能真正了解算法的工作原理。这种隐藏文本的东西很糟糕。
认为 h1 很特殊?你落后几年了。页面上最大的字体是 h1。我们通过大幅降低跳出率和提高点击率,同时提升评论,将一个网站的 SEO 洛杉矶排名从 0 提升到第一名。那是三年前的事了,现在仍然是第一名。谁能想到谷歌会重视用户提供的指标?嗯。想想看。就像用户很重要一样。哈哈。让我们隐藏几个关键词,并称之为 SEO 友好。
1 http://www.google.com/about/
那就是 SEO,CRO == SEO
在接下来的几年里,你们会看到这一点,最终,那些机械地重复一切并自称是专家的家伙们会开始重复它。哦,还有一件事,都是 Microworkers。回头见 =P
经过测试的最佳 CSS 是
position:absolute;
clip:rect(0 0 0 0);
我认为使用 JavaScript 进行 SEO 隐藏会更好。
您在这里可能有一些道理。据我了解,JavaScript 是搜索蜘蛛的绊脚石。谷歌现在变得更聪明了吗?
我不会将其定义为 SEO 友好。在我看来,任何隐藏的 div 都有可能导致您被列入黑名单
我必须同意,虽然从理论上讲它可能被认为是不好的,但此代码确实有合法用途,其用途并非仅仅是为了隐藏 SEO 分块关键字。
我会说避免它,但我怀疑谷歌是否有时间检查它被使用的理由。
我的大学老师向我们描述了一种类似的技术,用于无障碍目的(我不太记得了。也许是为了跳过链接)。
实际上,我不喜欢在页面上隐藏文本,但有时你不得不这样做……所以谢谢:这是另一种完成工作的方法。
我个人同意Dalibor Sojic的观点:对于 SEO,我会使用 JavaScript。
我一直使用它来访问链接,从未受到处罚。我还收到了视障人士的评论,感谢我使他们的生活更轻松。
不过,我不想冒着将其用于任何不光彩目的的风险。
我同意你的观点……对视障人士非常有用……不过我不会将其用于 SEO……我之前因为使用各种“技巧”而被列入黑名单,我不会再那样做了。
“(……)我还收到了视障人士的评论,感谢我使他们的生活更轻松。” – Nicholas Johnson
Nicholas,我是你的粉丝。真的。
所以,孩子们:忘记谷歌吧。这是关于用户的。
我见过两者都被使用,但我很好奇是否有人知道使用
-9999em
与使用
-9999px
是否会造成任何性能/渲染问题或任何差异?
Phil D:自从我有了 27 英寸 iMac 以来,我更喜欢 -9999em,因为即使您漏掉了一个数字,它也更有可能在屏幕外,而不是 -999px :) text-indent 同理……
搜索引擎可能会因此将您列入黑名单
我认为这是隐藏内容的黑帽 SEO
1. 除非有人投诉,否则您不会因为这样做而被列入黑名单。谷歌搜索机器人不读取 CSS。
2. -200em 或更大,优于使用像素。
太棒了
如果搜索引擎因为帮助视障人士而将您列入黑名单,那么该搜索引擎就是愚蠢的——这只是我个人的谦虚意见。
还有一件事,我不确定谷歌是否不读取您的 CSS。可能不是一个完整的 CSS 解析器,而只是查看您是否以可疑的方式隐藏了页面的大块内容;)
不能说得更好。
如果搜索引擎真的关心它,它们会开始推荐类似于这段 CSS 和
role="screereader"
或类似的东西。出于SEO目的,此技巧可能会导致您被列入黑名单,并尝试保持简洁明了的导航,这也有利于提高可用性。
在什么情况下你会使用这段代码,以及它在可访问性方面如何比“display:none”更好?
@igor
如果您使用包含文本的图像作为标题,则**必须**提供相同的替代文本。
但是,如果图像由CSS定义(通过background-image),则您没有地方(=alt属性)来放置alt文本。通过使用此技巧将alt文本放在Hx(=H1,H2等)中的span中并将其移出屏幕,您可以允许视障人士和阅读障碍者使用的屏幕阅读软件以及搜索引擎机器人读取此文本。请注意,display:none会隐藏屏幕阅读器的内容,因此定义alt文本毫无用处:-)
有些人更喜欢提供带有alt属性的“真实”图像。但CSS图像允许您提供多种尺寸/对比度/布局…
如果media=aural被浏览器供应商正确实现(允许我们在大多数情况下使用display=none,并为视障用户使用display=visible/audible),则无需使用这种复杂的解决方案!
在每个人都惊慌失措地认为自己的网站充满了黑帽技术之前,请现实一点。谷歌只会对明显的滥用行为进行处罚,例如超链接、文本块和似乎隐藏在视图之外的关键字。
为(例如)标题提供可访问的替代方案是可以接受的做法。您只需查看许多使用SEO友好技术的知名网站的搜索结果,就可以发现它们没有受到处罚。
屏幕阅读器无论如何都不关心CSS,只要内容在禁用Javascript的情况下可访问,您就应该没问题。
我不建议使用此策略!隐藏屏幕上文本的更好方法是使用JavaScript。
这会增加页面权重吗?或者与visibility:hidden相同?
我过去曾使用过此方法,但目前我使用font-size: 0px代替。
您认为哪种方法更好?我不明白我的方法如何妨碍视障人士使用文本阅读器,但我可能遗漏了一些东西。
Bradley
我认为SEO友好的隐藏元素的更好方法是使用上述CSS隐藏与javascript或jquery结合使用。
我同意。我的经验是:JS和jquery是可以的,但css不是正确的方法。
我更喜欢Scott Kellum的方法
.hideMyAss {<br/>width: 100px; <– 或任何你喜欢的 height: 100px; <– 或任何你喜欢的 background: url(test.png);<br/> text-indent: 100%;<br/> white-space: nowrap;<br/> overflow: hidden;<br/> }
这似乎运行良好。没有绘制一个离屏幕很远的框,也没有被谷歌(或其他搜索引擎)皱眉(但老实说,现在还有谁会考虑其他搜索引擎?但那是另一场辩论)。
谢谢Adam。Scott Kellum的方法是一种很棒的技术,效果非常好。更重要的是,没有被列入黑名单的风险。
谷歌*建议*对智能手机优化的网站使用响应式css,这意味着visibility: hidden; 和display:none; 对它们来说是可以的。
*https://developers.google.com/webmasters/smartphone-sites/details
我认为也许不是更好
hideme {
position: absolute;
overflow: hidden;
top: -100%;
left: -100%;
}
在我看来,这似乎是最简洁的解决方案。
我仅在论坛上用于垃圾邮件机器人的表单字段中使用此技巧(它们倾向于填写您抛出的每个字段)。当然,谷歌不允许访问注册页面(robots.txt),所以这不是关于SEO的问题——如果他们使用屏幕阅读器,我们会为视障人士提供警告(尽管在我们的论坛上不太可能,因为它是关于计算机图形的)。
所以是的,它有“优点”和有用的地方,但我自己当然也会谨慎使用它。
[脱节] 我要发送的消息的简短预览:-) [/脱节]
Gaieus,您的联系方式是什么?(您是否提供私人咨询?谷歌站长论坛上没有联系方式。)
谢谢
太棒了
我多次在“阅读更多”部分中添加了额外的内容,使用CSS display:none; 和jquery来显示——之前从未遇到过任何处罚问题。
好的,谢谢,但是如果谷歌认为我是垃圾邮件发送者并对我进行处罚怎么办?
有趣的讨论。我有一个点击计数器,我不想用它来烦扰我的读者。
我以前用过
.hidden { color: #bgbgbg; background: #bgbgbg; } 页面颜色是 #bgbgbg –
没有明显的处罚,但这会在w3 css验证器上发出警告。
我可以通过选择它来查看它,这是计划好的,但它会被朗读给视障人士,这不是计划好的。
display: none和visibility: hidden不会导致警告,但不会执行我想要它们执行的操作!它们确实隐藏了内容,以至于我无法阅读它们。
有什么意见吗?
我只是太懒了,不想去另一个地方阅读统计数据:D
如何使用javascript使隐藏内容对SEO友好。我有一些图像,单击时会显示必要的内容,因为我不希望用户必须单击多个页面才能找到他们需要的信息。
其中一个页面是http://mhi-uk.co.uk/budget-kitchens/。
关于graham的任何建议?
很多都与意图有关,伙计们。如上所述,不要在一堆漂浮在屏幕外的空间中的div中塞满一堆H1和垃圾关键字。这可能会让你被大G抓到。
一个非常好的和可以接受的用途是在字体替换或基于图像的徽标在网站左上角的h1标签中的情况下,设计师使用的默认选择对于搜索机器人或屏幕阅读器(盲人浏览器)来说不是最佳实践。
就像您需要在图像中使用alt标签一样,如果您正在使用对网站访问者视觉上很重要的图形元素,则必须做一些事情来帮助无法“看到”的网站访问者以传统意义上的方式“看到”。
如果SEO很容易,它会被称为你的妈妈。读本书:)
我最初使用display:none,并在鼠标悬停时使用display:block,用于我一个客户的网站,这也会损害SEO吗?
谷歌处罚的可能性…小心并采取行动..:)
大家好!
滚动条会影响SEO吗?
我的意思是,如果在您的网站上使用滚动条是否有任何问题?
所有文章的首页都有滚动条
会影响SEO吗?
看起来不错,但在阅读了评论后发现它可能会损害网站的SEO。
当您希望向屏幕阅读器提供信息、纯语义浏览等时,应使用此CSS样式。但不要在普通浏览器上显示它。
与所有事物一样,正确使用它,您将只会获得好处。
我个人在制作的所有页面顶部都使用此方法来隐藏指向主菜单和页面正文内容的快捷方式。这样,使用屏幕阅读器的用户就可以直接访问内容,而无需在浏览网页时一遍又一遍地听到所有网站的标题文本。其他人则可以看到正常的网页。
虽然这种方法仍然有效,但现在有更好的方法可以做到。
根据评论中的链接,这种方法的额外好处是性能提升,并且由于某些巨大的屏幕分辨率,永远不会出现在屏幕上。
顺便说一下,我添加了
position: absolute;
和height: 0;
样式。它们不包含在zeldman讨论的方法中,但在我的情况下需要它们来保持布局正常工作(如果没有它们,文本所在的位置会出现空白)。非常感谢,Tim!
谷歌关注或担心的是隐藏的内容,而不是技术本身。如果您使用(隐藏的)过多关键词,谷歌可能会封禁您的网站。
否则,W3C在最新版本中就会删除“text-indent”。
如果您饮酒驾车,警察会罚款或可能将您拘留。但如果您饮酒并且享受乐趣,没有违反任何规则,没有人会对您做什么。警察或政府从未禁止饮酒,他们只禁止或惩罚那些饮酒并违反法律的人。这里,酒精代表属性text-indent: -9999px,警察代表谷歌,饮酒后开车就像使用过多的关键词,饮酒并享受乐趣而不违反任何法律就像出于某些好的目的使用text-indent: -9999px,例如帮助改善网页内容的可访问性。
我在搜索是否使用CSS的“clip”功能有任何有害影响时偶然发现了这里。我想我还会继续寻找,但clip似乎比上面提到的方法(公平地说,它是在很久以前发布的)要好得多。
“display:none”会导致元素从浏览器构建的可访问性树中移除。这意味着辅助技术(主要是屏幕阅读器)将无法访问这些元素。
如果您打算为视障用户提供其他信息,Chris在这里描述的位置技术是W3推荐的技术之一。我见过的另一种技术使用的是clip。
请注意1px的高度和宽度。这是因为0px的高度和宽度会导致大多数屏幕阅读器忽略该区域(即浏览器不会将其添加到可访问性树中)。此外,将剪辑尺寸设置为0px会导致VoiceOver忽略被剪辑的区域。
我不能代表其他搜索引擎,但谷歌非常了解用于可访问性的屏幕外技术,并且不会因为正确使用它而将网站列入黑名单或降低其排名。
另外一点:如果您使用屏幕外定位来隐藏跳过链接,请确保它们在获得焦点时变得可见。跳过链接也有利于无法使用鼠标(即仅使用键盘)的视力正常的用户。他们需要看到这些链接才能使用它们。
我只能说谷歌自己也使用隐藏文本技术,请查看此处文本字段上的标签:https://127.0.0.1
隐藏某些文本的整个过程是使用微格式或所谓的丰富代码片段。
谷歌和其他搜索引擎都能很好地识别这一点,但它通常会破坏您的整个布局。
因此,如果您想使用(查看schema.org)这些谷歌排名工具,但又不想采用那些难看的div,则需要隐藏它。我认为使用text-indent的方法是可以的。
我对此有一个疑问,不确定这样做是否合适。
我想从响应式网站的移动视图中完全删除一些div,具体取决于使用的移动设备。我还想确保谷歌页面速度得分是准确的(对于已删除div的设备)。
我正在使用用户代理检测移动设备。谷歌页面速度机器人使用iPhone,但即使我设置了div不在iPhone上显示,它们仍然显示在谷歌页面速度中。
为什么会这样?即使不是,这样做是否会被谷歌视为黑帽SEO?
谢谢。
我不能代表其他搜索引擎,但谷歌非常了解用于可访问性的屏幕外技术,并且不会因为正确使用它而将网站列入黑名单或降低其排名。
如果您想使用(查看schema.org)这些谷歌排名工具,但又不想采用那些难看的div,则需要隐藏它。我认为使用text-indent的方法是可以的。
谷歌处罚的可能性…小心并采取行动..:)
这方面怎么样?
color: transparent;
text-indent: -9999px;
大家好!我知道有点晚了,但visibility:hidden和z-index:-999怎么样?
有些人,在评论中,之前提到过“visibility:hidden”不是最佳实践。
我现在正在考虑使用“position: absolute”将负z-index放在具有白色背景的div下方,以隐藏具有itemprop=”image”的img元素,用于schema.org…
我知道这是一个比较旧的话题,但我刚刚遇到了一种情况,我需要添加一个h1标签,但想在开发的主页上使用图像代替:http://cacaoandcream.com
我发现Keith Hays的回答非常有帮助。
注意:“clip: rect(0px 0px 0px 0px);”也允许文本显示在页面源代码中,但我不想遇到任何可访问性问题。
关于以这种方式使用“clip”的做法,是否有更新的SEO信息?对于谷歌和其他搜索引擎来说,这是否仍然是可以接受的?
您是否听说过Robots.txt。Robots.txt文件非常适合隐藏,请在谷歌上搜索。
关于以这种方式使用“clip”的做法,是否有更新的SEO信息?对于谷歌和其他搜索引擎来说,这是否仍然是可以接受的?
尊敬的Chris Coyier,我在我的网站上使用了display:none代码来隐藏文本,搜索引擎是否将此代码视为黑帽技术?