【发布时间】:2012-10-03 12:48:02
【问题描述】:
我已经找到了许多关于这个问题的部分答案,但似乎没有一个明确的答案。对于如此重要的技术,我觉得这有点奇怪。
我应该如何隐藏元素(使用 javascript),以便在 JS 有机会隐藏它们之前在页面加载时它们不会短暂出现?我不想在最初用 CSS 将它们设置为隐藏,就好像用户没有 Javascript,他们什么也看不到。
要清楚。我不是在问如何处理向没有 JS 的用户显示内容。那是一个完全不同的主题。我只想要一种可靠的方法在 HTML 元素显示之前隐藏它们。
所以我的要求:
- 最初使用 CSS 不会隐藏 HTML 元素
- 如果 JS 可用,这些元素将被隐藏,因此它们永远不会显示,即使是瞬间也不会显示。这意味着将它们隐藏在正文末尾加载的 JS 中已经出来了)。
【问题讨论】:
-
听起来像是两个不同的问题。首先,您最初如何隐藏元素,其次,如果客户端没有 javascript(启用),您会怎么做。小心不要提出这些问题。
-
我认为使用modernizr 可能会有所帮助。您仍然可以指定使用 CSS 隐藏元素,因此对于没有 javascript 的浏览器,您可以使用
.no-js类覆盖样式以显示它们。但我不太确定正在显示的元素的初始“闪烁”。这与代码的结构以及 Web 浏览器如何解析和显示它们有关。 -
@Erik Philips。我只提到这个要求是为了避免在样式表中收到诸如“将元素设置为显示:隐藏”之类的答案。
标签: javascript jquery html dom hide