什么是 FOUC?如何避免?
1. FOUC(Flash of Unstyled Content,文档样式短暂失效)
在引用 CSS 的过程中,如果方法不当或者位置引用不对,会导致某些页面在 Windows 下的 IE 出现一些奇怪的现象,以无样式显示页面内容的瞬间闪烁,这种现象称之为文档样式短暂失效,简称 FOUC。
2. 原因
当样式表晚于结构性 HTML 加载,当加载到此样式表时,页面将停止之前的渲染。此样式表被下载和解析后,将重新渲染页面,也就出现了短暂的花屏现象。常见触发场景:
- 使用
@import引入 CSS; - 把
<link rel="stylesheet">放在了<body>之后; - CSS 与 JS 异步加载顺序未控制好。
3. 解决方法
- 使用
<link>标签将样式表放在文档<head>中; - 尽量避免使用
@import,改用<link>; - 关键 CSS 内联(Critical CSS),非关键 CSS 异步加载。
补充:
- FOUC 在现代浏览器中已较少见,但 SSR 项目或主题切换瞬间仍可能出现类似闪烁。
- Next.js / Nuxt 这类框架默认会把关键 CSS 内联到 HTML 中,从根源上避免 FOUC。
- 配合
font-display: swap等字体加载策略可以进一步缓解 FOIT(Flash of Invisible Text)。



