在页面加载时在显示 HTML 元素之前隐藏它们的正确方法是什么?

2024-01-03

我找到了这个问题的许多部分答案,但似乎没有一个明确的答案。对于如此重要​​的技术,我觉得有点奇怪。

我应该如何隐藏元素(使用 javascript),以便它们在页面加载时不会在 JS 有机会隐藏它们之前短暂出现?我不想用CSS将它们设置为隐藏,就好像用户没有Javascript一样,他们什么也看不到。

要明确的是。我不是问如何处理向没有 JS 的用户显示内容。这是一个完全不同的话题。我只是想要一种可靠的方法来在显示 HTML 元素之前隐藏它们。

所以我的要求:

  1. HTML 元素最初不会使用 CSS 隐藏
  2. 如果 JS 可用,这些元素将被隐藏,这样它们就永远不会显示,哪怕是一瞬间也不显示。这意味着将它们隐藏在主体末尾加载的 JS 中是不可能的)。

像VKen一样,我更喜欢使用moderizr http://modernizr.com/ and 保罗·爱尔兰的结构html element http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/(这是什么HTML5 样板 http://html5boilerplate.com/ uses)

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

然后在样式表中:

.element-to-hide { display: none; }

.no-js .element-to-hide { display: block; }

效果很好,没有闪烁的元素消失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在页面加载时在显示 HTML 元素之前隐藏它们的正确方法是什么? 的相关文章

随机推荐