这段时间看到CSS阻塞解析的问题,看到白屏和FOUC,想要记录一下了解到的知识。
FOUC是什么
FOUC全称为 Flash Of Unstyled Content
也就是文档样式短暂闪烁(失效)
那么什么是文档样式短暂失效呢?
使用import方法对CSS进行导入,或者将link样式表标签放置在页面底端,或者有几个link样式表,放在html结构的不同位置。
都会导致一些页面在浏览器上以无样式显示页面内容,然后再进行样式渲染。
发生这样的原因
浏览器会首先加载整个HTML文档的DOM,然后再导入外部的CSS文件。
因此DOM结构是完整的,但是渲染被阻塞了。
就会暂时显示出无样式的页面内容,过一段时间才会渲染完成。这段时间的长短跟网速和电脑速度都有关系。
解决方法
将link样式表放在head标签内。
若必须将样式表放在其他位置,
则可以在页面顶端放置一些默认样式:
例如让所有内容都不显示;
或者显示一个loading的界面。