核心思路:
一、抽取出首页需要的css
二、用行内css形式 加载这部分css(critical css)
三、等到页面加载完之后,再加载整个css,会有一部分css与critical css重叠
示例
内嵌关键的CSS,具体方法如下:
注意 <link>放在了</html>后面
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<link rel="stylesheet" href="small.css">
在网页加载之后,原始small.css才会加载。
————————————
抽取critical css有自动化工具grunt-criticalcss,完全不需要自己动手
亲测好用,
npm install grunt-criticalcss --save-dev我再加点注释吧
grunt.initConfig({ criticalcss: { custom: { options: { url: "http://localhost:4000", // 你的网址 width: 1200, height: 900, outputfile: "dist/critical.css", filename: "/path/to/local/all.css", // 使用的css的本地路径 buffer: 800*1024, ignoreConsole: false } } }, });
grunt.loadNpmTasks('grunt-criticalcss');