4

可以暂时或永远隐藏任何东西display:none吗?在动态站点中,页面的许多组件来自不同的插件等,如果客户不想要页面上的任何东西,那么我会使用很多时候dispaly:none隐藏页面中的东西。我不会从实际源中删除东西,因为客户可以回来要求再次启用该东西。

那么让东西隐藏起来的利弊是什么:如果我让任何元素Display:none永远隐藏起来,那就没有了?

在搜索引擎优化、屏幕阅读器、可访问性等方面有什么缺点吗?

4

6 回答 6

12

如果客户希望将其删除,则创建该页面的备份,并发布实际上已将其删除的页面。不要用 CSS 代替实际删除项目。如果他们决定将来需要它,请进去并将您的备份换成您的 Live Copy。如果您正在处理动态输出(在 PHP 或类似技术的情况下),您可以使用注释停止该特定输出,这样它们就不会包含在响应中。

于 2010-02-18T15:31:12.583 回答
4

优点:很容易做到

缺点:

  • 您仍在服务器端加载组件,客户端将下载它们。浏览器根本不会“显示”它们。
  • 任何使用“查看源代码”的人都可以看到“隐藏”的值。所以永远不要用它来隐藏敏感信息。

您可以简单地在服务器端“评论”这些部分,以节省大量的服务器处理、带宽等。

于 2010-02-18T15:33:31.347 回答
2

在这里可能还值得一提的是,一些搜索引擎(例如谷歌)确实会评估隐藏的内容。

使用隐藏大量文本display:none;是许多搜索引擎作为关键字垃圾邮件的原因之一。

:)

于 2010-02-18T15:58:04.120 回答
1

当您执行客户端 Ajax 时,使用“display:none”隐藏/显示内容是有意义的。这样您就可以在不进行服务器往返的情况下切换视图/选项卡。

当存在安全隐患时,需要从页面标记中实际删除某些内容。如果用户无权查看某些敏感信息,那么当他们点击“显示来源”时,这些信息不应该存在。

于 2010-02-18T15:31:19.167 回答
1

display: none当人们关闭 css 或使用不支持 css 的浏览器时,隐藏你想要显示的东西是很好的。

于 2010-02-18T15:31:52.583 回答
0

就可访问性而言,很有可能用“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/

于 2010-02-25T03:36:54.277 回答