消除无样式内容的闪光

新手上路,请多包涵

如何停止网页上无样式内容 (FOUC) 的闪烁?

原文由 CMS Critic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 674
2 个回答

此处介绍的纯 CSS 解决方案均不适用于现代浏览器(异步加载 css 和字体)。你必须使用Javascript。我为避免 FOUC 所做的是:

 <html>
  <body onload="document.body.style.visibility=`visible`;">
    <script>document.body.style.visibility=`hidden`;</script>

使用这种方法,我的网页正文会一直隐藏,直到加载完整页面和 CSS 文件。加载完所有内容后,onload 事件会使主体可见。因此,网络浏览器保持空白,直到屏幕上弹出所有内容。

这是一个简单的解决方案,但到目前为止它正在工作。

这不会影响禁用 Javascript 的用户,因为 <script> 标签被忽略。

原文由 Álvaro Durán 发布,翻译遵循 CC BY-SA 4.0 许可协议

此页面上的每个答案都会减慢负载,并且只会隐藏根本问题。如果您遇到 FOUC,请找出它发生的原因并加以解决。

在核心,这正在发生:

  • 因为您的样式表没有正确加载:它们应该通过 HTML 中的 link 标签加载,而不是通过 JavaScript
  • 因为您将 --- 标签放在 script link 之前,这可能会强制执行“布局操作”并诱使浏览器在尝试加载样式之前进行渲染。

作为参考,以下是 FOUC 的示例:

FOUC 示例

原文由 fregante 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题