在我的页面中有效地加载CSS



这是我的问题。

我正在用谷歌页面速度洞察分析我的页面。它告诉我删除头部(浮动线上方)的css链接,因为它阻止了我的页面加载。

现在,我在文档的开头有一个简单的链接:

<link rel="stylesheet" media="all" href="http://mydomain.we/css/my.css" /> 
 </head>

我试着把链接行放在文档的底部。就在页面末尾之前。

<link rel="stylesheet" media="all" href="http://mydomain.we/css/my.css" /> 
</body> 

再次运行Insight。

Insight结果有两个选项卡。通过将css链接放在文档的en,我在移动选项卡上获得了100%的分数。然而,我在计算机部分仍然收到相同的消息,就好像无论我放在哪里,它都会被加载到浮动线上方一样。我不明白,因为我可以看到页面在没有css的情况下加载了几分之一秒。

所以我想知道加载css的最佳方式是什么?

我应该在页眉中放置样式标记吗?

我应该在元素上添加样式标签吗<--我宁愿不要。

那么加载css的最佳方式是什么呢?

谢谢。

IMHO,Insight总是会认为加载外部CSS文件效率较低,因为,从Google Developers-OptimizeCSSSdelivery

优化CSS交付
当PageSpeed Insights检测到页面包含渲染阻塞外部样式表时,此规则会触发,这会延迟首次渲染的时间。

对于小型CSS代码来说可能是这样,但对于大型CSS代码来说则不然,这样做的另一个缺点是,如果你决定更改CSS中的某些内容,那么你需要转到每一个页面并进行更改,而不是一次更改。

此外,与内联代码不同,外部CSS文件可以缓存,还考虑到网页大小会增加,或者因为你在每个页面中都内联了它,所以每个页面都会增加。

我应该在元素上添加样式标签吗<--我宁愿不要

永远不会!,这会让你很难维护和推广你的CSS,并且会成为首要任务,所以你会想知道为什么在外部文件或head部分中更改CSS没有生效。

可能是media=all导致的,因为它用于识别所有媒体,其中media=screen用于台式机。我会先尝试使用media=screen,如果不起作用,试着一起去掉媒体标签。

可能重复:"消除折叠内容上方的渲染阻塞CSS";

你应该保持你的CSS原样。我从来没有见过有人建议在头部之外的任何地方链接CSS文件。谷歌页面洞察标准并不意味着这是最好和最优化的方式,每个网站都是不同的。

最快的方法是使用<style>...</style>甚至内联CSS。但这并不意味着这是最好的做法。如果只是几行CSS,你可以选择<style>方法,但如果仅仅为了获得完美的Google Page Insights分数不合适,我不会特意这么做。

解决方案是首先识别和分离用于初始页面显示的CSS,并将其移动到单独的文件中。

在head部分加载这个初始css文件,并将剩余的css移动到页面底部。

最新更新