css - 仅在 Firefox 中显示无样式内容 (FOUC)? FF 是慢速渲染器吗?

标签 css firefox stylesheet font-face fouc

我在我测试过的任何其他浏览器(IE、Chrome、Opera)中都没有看到这个问题,但每当我从服务器加载页面时,我都会在应用 CSS 之前看到一闪而过的无样式内容.

这甚至会发生在后续页面加载时,所有内容都应该被缓存 - 每次页面加载时,我都会在一瞬间看到未设置样式的内容,然后一切都稳定下来。

还值得注意(也许?)该页面使用@font-face 提取一些 Google 字体。它们存储在一个单独的样式表中,在主要的响应式样式表和媒体查询之后被拉取。

我尝试了一些不同的东西,但没有效果:

  • 重新排列 CSS 样式表链接的顺序
  • 使用@font-face 删除指向样式表的链接
  • 禁用 Firebug? (在这里的某个地方阅读...)

另一件值得一提的事情是,我在页面的 CSS 中使用了相当多的元素类型 CSS 选择器。这可能会减慢渲染过程吗?

这似乎不太可能,因为在更改窗口尺寸后立即重新呈现页面没有问题 - 响应内容立即呈现良好。

所以这让我相信 CSS 的加载方式存在一些问题。

这是我的 HEAD 代码:

<!DOCTYPE html>
<head>
<!--<meta name="robots" content="noindex" />-->
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi" />
<title></title>

<!-- responsive stylesheets -->
<link rel="stylesheet" href="resources/css/320.css" type="text/css" media="screen and (max-width:320px)" />
<link rel="stylesheet" href="resources/css/480.css" type="text/css" media="screen and (min-width:321px) and (max-width:480px)" />
<link rel="stylesheet" href="resources/css/768.css" type="text/css" media="screen and (min-width:481px) and (max-width:768px)" />
<link rel="stylesheet" href="resources/css/960.css" type="text/css" media="screen and (min-width:769px) and (max-width:960px)" />
<link rel="stylesheet" href="resources/css/960+.css" type="text/css" media="screen and (min-width:961px)" />

<!-- custom fonts stylesheet -->
<link rel="stylesheet" href="resources/css/fonts.css" type="text/css" />

<!-- favicon -->
<link rel="shortcut icon" href="resources/images/ui/favicon.ico">

<!--[if lt IE 9]>
<link rel="stylesheet" href="resources/css/960+.css" type="text/css"/>
<![endif]-->
</head>

WTF 在 Firefox 上出了问题?这让我抓狂!

最佳答案

如果你添加一个虚拟 <script><body> 之后标记, Firefox 将显示来自 <head> 的所有 css 之后的页面已加载:

<body>
   <script>0</script>
   <!-- rest of the code -->
</body>

在 Firefox 网站上有一个关于这个 FOUC(Flash Of Unstyled Content)的官方错误报告:https://bugzilla.mozilla.org/show_bug.cgi?id=1404468

关于css - 仅在 Firefox 中显示无样式内容 (FOUC)? FF 是慢速渲染器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147149/

相关文章:

ajax - firefox中的跨域ajax

html - 无需编辑 html 的两个 div 的 Css 包装

html - 为什么有文字的div和没有文字的div不在同一行?

javascript - 如何使用 Firefox 扩展将 JavaScript 函数注入(inject)所有网页

jquery - CSS 解析器/抽象器?如何将样式表转换为对象

css - 在 IE 6 中触发 haslayout,使用 * html div { height : 1%; } 的副作用是什么

html - 将 <BR> 样式设置为具有类似于 <P> 的边距

javascript - 选择下拉列表时如何禁用文本字段

css - Bootstrap 4 - 如何将另一个导航选择放在顶部并折叠成一个

javascript - ExtJS 4 树面板项目在 Firefox 中可见,但在 Chromium 中不可见