使用rel="preload"预加载关键CSS,内联首屏样式并异步加载非关键CSS,结合rel="prefetch"预取后续页面资源,避免渲染阻塞,提升页面加载速度与用户体验。

使用 link 标签和 rel 属性合理组织 CSS 加载,能显著提升页面渲染速度和用户体验。关键在于减少阻塞、预加载关键资源以及优化浏览器的加载优先级。
使用 rel="preload" 预加载关键 CSS
通过 rel="preload" 告诉浏览器某些 CSS 文件是高优先级的,应尽早开始下载,避免阻塞首次渲染。
建议:- 对首屏必需的样式文件使用 preload,例如核心布局或主题样式。
- 配合
as="style"明确资源类型,提升解析效率。 - 示例代码:
分离关键 CSS 并内联,非关键 CSS 异步加载
将首屏渲染所需的关键 CSS 直接内嵌到 HTML 的 中,避免额外请求。其余 CSS 使用 rel="stylesheet" 异步加载。
- 提取关键 CSS(如按钮、头部、主结构样式)并内联在
中。 - 其余样式用 link 引入,并通过 JavaScript 或
rel="preload"+ onload 切换为 stylesheet,实现异步加载。 - 示例:
使用 rel="prefetch" 预取后续页面样式
针对用户可能跳转的页面,利用 rel="prefetch" 在空闲时提前加载其 CSS,加快后续访问速度。
立即学习“前端免费学习笔记(深入)”;
适用场景:- 下一页可能是“详情页”或“登录页”时提前加载对应样式。
- 资源优先级较低,不影响当前页面性能。
- 示例:
避免 render-blocking 的外部样式表直接引入
默认 rel="stylesheet" 会阻塞渲染,尤其是放在底部或加载慢时影响大。
- 非关键 CSS 不直接使用
rel="stylesheet"同步加载。 - 结合媒体查询加载特定条件下的样式,如打印样式:
,这类资源不会阻塞屏幕渲染。 - 动态加载策略:先加载基础结构,再按需插入完整样式。
基本上就这些。合理搭配 rel 属性和加载策略,能让 CSS 资源更高效地服务页面渲染,减少白屏时间,提升整体性能表现。










