Skip to content

关键路径(首屏)CSS 工具 Awesome

> 帮助确定首屏 CSS 优先级的工具

为获得最佳性能,PageSpeed Insights recommends 将页面的关键(首屏)CSS 直接内联到 HTML 中. 这消除了额外的往返,并允许浏览器更快地将上面的体验绘制到用户的屏幕上. 主要思想是:

  • 确定页面的首屏样式并将它们写在之间<style> tags in the head.
  • 在页脚中加载所有其他样式表,最好是异步加载.

以下是帮助生成、内联和报告关键路径 CSS 的工具列表.

Node modules

  • Penthouse - 由 Jonas Ohlsson 生成关键路径 CSS
  • Critical - 由 Addy Osmani 生成并内联关键路径 CSS(使用 Penthouse, Oust 和内联样式)
  • CriticalCSS - 由 FilamentGroup 发现并输出关键 CSS

Server-side modules

Grunt tasks

CasperJS

PhantomJS

  • dr-css-inliner - 用于在页面上内联首屏 CSS 的 PhantomJS 脚本.

Inline sources (styles, scripts)

  • inline-styles - 由 Max Ogden 取代 <link> 内联标签 <style> tags + inlines CSS url() calls with data URIs
  • inline-critical - Ben Zörb,内联关键路径 CSS 并使用 loadCSS 加载现有样式表
  • isomorphic-style-loader 对于 Webpack - 允许为 React 应用程序中的任何给定页面/屏幕提取关键 CSS,并在服务器端渲染 (SSR) 期间将其内联到 HTML 中. 看 React Starter Kit 举个例子.

Async load CSS

内联关键路径 CSS 后,应使用异步加载来获取站点范围内的其余样式.

注意:Guardian 目前还将其全局样式缓存到 localStorage 中以供后续页面加载. 更多信息在此 comment.

Online tools

Bookmarklets/Extensions

Render-blocking issues detection

Supplementary tools

  • UnCSS 从页面中删除未使用的 CSS,允许您减少可能需要为站点加载的全局 CSS. 任务可用于 Grunt, Gulpother 构建工具.