可以暂时或永远隐藏任何东西display:none
吗?在动态站点中,页面的许多组件来自不同的插件等,如果客户不想要页面上的任何东西,那么我会使用很多时候dispaly:none
隐藏页面中的东西。我不会从实际源中删除东西,因为客户可以回来要求再次启用该东西。
那么让东西隐藏起来的利弊是什么:如果我让任何元素Display:none
永远隐藏起来,那就没有了?
在搜索引擎优化、屏幕阅读器、可访问性等方面有什么缺点吗?
可以暂时或永远隐藏任何东西display:none
吗?在动态站点中,页面的许多组件来自不同的插件等,如果客户不想要页面上的任何东西,那么我会使用很多时候dispaly:none
隐藏页面中的东西。我不会从实际源中删除东西,因为客户可以回来要求再次启用该东西。
那么让东西隐藏起来的利弊是什么:如果我让任何元素Display:none
永远隐藏起来,那就没有了?
在搜索引擎优化、屏幕阅读器、可访问性等方面有什么缺点吗?
如果客户希望将其删除,则创建该页面的备份,并发布实际上已将其删除的页面。不要用 CSS 代替实际删除项目。如果他们决定将来需要它,请进去并将您的备份换成您的 Live Copy。如果您正在处理动态输出(在 PHP 或类似技术的情况下),您可以使用注释停止该特定输出,这样它们就不会包含在响应中。
优点:很容易做到
缺点:
您可以简单地在服务器端“评论”这些部分,以节省大量的服务器处理、带宽等。
在这里可能还值得一提的是,一些搜索引擎(例如谷歌)确实会评估隐藏的内容。
使用隐藏大量文本display:none;
是许多搜索引擎作为关键字垃圾邮件的原因之一。
:)
当您执行客户端 Ajax 时,使用“display:none”隐藏/显示内容是有意义的。这样您就可以在不进行服务器往返的情况下切换视图/选项卡。
当存在安全隐患时,需要从页面标记中实际删除某些内容。如果用户无权查看某些敏感信息,那么当他们点击“显示来源”时,这些信息不应该存在。
display: none
当人们关闭 css 或使用不支持 css 的浏览器时,隐藏你想要显示的东西是很好的。
就可访问性而言,很有可能用“display: none;”隐藏了一些东西。不会被屏幕阅读器阅读。如果您打算这样做,这可能是可以接受的。
仅隐藏屏幕阅读器/css-offers 内容的一种可能替代方法是使用此类:
.offscreen {
position: absolute;
left: -9000px;
width: 0;
overflow: hidden;
}
以及以下 HTML:
<h3 class="offscreen">Site Navigation</h3>
有关隐藏技术的完整信息: http ://www.access-matters.com/2005/04/23/screen-reader-test-results/