关键/延迟CSS实现

关键/延迟CSS实现,css,pagespeed-insights,critical-css,Css,Pagespeed Insights,Critical Css,Google PageSpeed审计建议在中的标记中添加折叠内容上方的关键CSS,并将其余内容推迟到加载内容之后 虽然我不同意这种做法,但正确的实施方法是什么 我对使用它有一些保留意见: FOUC(使用可见性:隐藏的单个元素或整个页面) 折叠上方的内容太多,无法使用最小的内联CSS进行样式设置,以防止FOUC被看到 在访问内容本身之前,加载的附加页面重量 没有缓存内联CSS,这意味着每次加载页面时都必须重新下载它 我不使用CSS框架,因此无论如何也没有臃肿的CSS可供下载。实现它的“正确”方

Google PageSpeed审计建议在
中的
标记中添加折叠内容上方的关键CSS,并将其余内容推迟到加载内容之后


虽然我不同意这种做法,但正确的实施方法是什么

我对使用它有一些保留意见:

  • FOUC(使用
    可见性:隐藏
    的单个元素或整个页面)
  • 折叠上方的内容太多,无法使用最小的内联CSS进行样式设置,以防止FOUC被看到
  • 在访问内容本身之前,加载的附加页面重量
  • 没有缓存内联CSS,这意味着每次加载页面时都必须重新下载它
我不使用CSS框架,因此无论如何也没有臃肿的CSS可供下载。

实现它的“正确”方法是一种自动化方法,以确保

  • 一旦设置,您就没有额外的工作了
  • 您不会犯错误(例如,缺少单个元素)
有一些工具可以在构建过程中识别和提取关键CSS。一个流行的选择是:

基本用法:

critical.generate({
     base: 'test/',
     src: 'index.html',
     target: 'styles/main.css',
     width: 1300,
     height: 900
});
您可以向其提供示例性HTML页面和视口端口大小,以定义“折叠上方”。然后它会给你关键的CSS。Webpack、Grunt和Gulp都有构建插件和配置

一旦你有了这样一个技术上正确的设置,你就可以权衡你已经意识到的优点和缺点。

实现它的“正确”方法是一种自动化方法,以确保

  • 一旦设置,您就没有额外的工作了
  • 您不会犯错误(例如,缺少单个元素)
有一些工具可以在构建过程中识别和提取关键CSS。一个流行的选择是:

基本用法:

critical.generate({
     base: 'test/',
     src: 'index.html',
     target: 'styles/main.css',
     width: 1300,
     height: 900
});
您可以向其提供示例性HTML页面和视口端口大小,以定义“折叠上方”。然后它会给你关键的CSS。Webpack、Grunt和Gulp都有构建插件和配置


一旦你有了这样一个技术上正确的设置,你就可以权衡你已经意识到的优点和缺点。

“什么是正确的实现方法?”是一个非常广泛的问题。可能有很多方法。是否有您尝试过且需要帮助的具体方法?你试过什么?@pixelistik不是我,是新员工坚持使用它。他实现它的方式只是设置标题的样式,因此FOUC与页面的其余部分一起出现(甚至不优雅地设置样式),这看起来不太好。我被告知上面所有的折叠CSS都应该内联。由于这个原因,我认为不应该在我们的用例中使用它。我是首席开发人员,自前任去年离开后一直担任,但他们不会接受我们的工作内容/方式。由于他如此坚决地使用它,我试图找到一个折衷方案,我对他的使用感到满意。“实施它的正确方法是什么?”是一个非常广泛的问题。可能有很多方法。是否有您尝试过且需要帮助的具体方法?你试过什么?@pixelistik不是我,是新员工坚持使用它。他实现它的方式只是设置标题的样式,因此FOUC与页面的其余部分一起出现(甚至不优雅地设置样式),这看起来不太好。我被告知上面所有的折叠CSS都应该内联。由于这个原因,我认为不应该在我们的用例中使用它。我是首席开发人员,自前任去年离开后一直担任,但他们不会接受我们的工作内容/方式。由于他如此坚决地使用它,我正试图找到一个妥协,我很高兴他使用它。