引用CSS:link和@import的区别

发布于,归属于css沙发还空着,抢! 共有108人围观    

原文:http://www.css88.com/archives/1079

作者:愚人码头

         大家知道页面要使用外部css文件的方式有两种,一种是引用(link),例如:<link rel=’stylesheet’ href=’a.css’>;另一种是导入(@import),例如:<style>@import url(’a.css’);</style>;两者引用的方式在页面上的展现效果却是一样的,但是两者又有着很重大的区别:就是页面的性能问题!
当然如果站点的流量没达到一定的流量(比如说10万ip或者更大),我觉得用link 或者 @import或者都是无所谓的,只要你维护方便。
假设我们一张页面使用了两个样式文件:a.css和b.css;

第一种方式,两个都导入:

<style>
<!--
@import url('a.css');
@import url('b.css');
-->
</style>

我们可以用使用工具分析一下网页的加载情况,如图:

import-import

即两个css同时加载;

 

第二种方式,一个引用,一个导入:

<link rel='stylesheet' type='text/css' href='a.css'>
<style>
@import url('b.css');
</style>

再来看看截图:

link-import

也就是等a.css下载完成了后再下载b.css,页面性能明显下降; 

第三种方式,引用a.css,在a.css导入b.css:

</link><link rel='stylesheet' type='text/css' href='a.css'>

在b.css中导入a.css

@import url(b.css');

我们看截图:性能还是不好!

link-with-import

 

第四种方式,引用a.css和b.css(b.css只是导入c.css),b.css导入c.css:

 <link rel='stylesheet' type='text/css' href='a.css'></link>
 <link rel='stylesheet' type='text/css' href='b.css'></link>

在b.css中导入c.css

@import url('b.css');

我们再来看截图:

这是ie下的截图,性能还是很差:

link-blocks-import

这是ie外其他流量器的截图,性能好于IE:

link-blocks-import-not-ie

 

第五种方式,导入很多:

<style>

@import url('a.css');
@import url('b.css');
@import url('c.css');
@import url('d.css');
@import url('e.css');
@import url('f.css');
</style>

性能就变成了这样的:

many-links

 

最后来看看第6种方式,两个都引用:

</link><link rel='stylesheet' type='text/css' href='a.css'>
</link><link rel='stylesheet' type='text/css' href='b.css'>

性能就变成了这样的:

import-import1

关于使用@import的弊端:

@import规则有可能导致白屏现象;使用@import会导致组件下载的无序性。

(如果您喜欢这篇教程,可以通过支付宝打赏我们1元哦,拜谢!)

跟作者说两句

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-? :) :( :!: 8-O 8)