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>
我们可以用使用工具分析一下网页的加载情况,如图:
即两个css同时加载;
第二种方式,一个引用,一个导入:
<link rel='stylesheet' type='text/css' href='a.css'>
<style>
@import url('b.css');
</style>
再来看看截图:
也就是等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');
我们看截图:性能还是不好!
第四种方式,引用a.css和b.css(b.css只是导入c.css),b.css导入c.css:
</link><link rel='stylesheet' type='text/css' href='a.css'> </link><link rel='stylesheet' type='text/css' href='b.css'>
在b.css中导入c.css
@import url('b.css');
我们再来看截图:
这是ie下的截图,性能还是很差:
这是ie外其他流量器的截图,性能好于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>
性能就变成了这样的:
最后来看看第6种方式,两个都引用:
</link><link rel='stylesheet' type='text/css' href='a.css'> </link><link rel='stylesheet' type='text/css' href='b.css'>
性能就变成了这样的:
大家可看看这个文章,他强烈建议我们不要使用@imports:
http://www.stevesouders.com/blog/
==========以下2009年4月13日更新========
css9.net上说:
《高性能网站建设指南》(《High Performance Web Sites》)第5章如是说:“Link标签代替@imort标签能带来性能上的收益;@import规则有可能导致白屏现象;使用@import会导致组件下载的无序性。”
相关日志:
刚刚被浏览过的文章:
- CSS引用(link)和导入(@import)的区别(2009年 (3613 Leser)
- 像写css选择器一样写jQuery选择器(一 (2178 Leser)
- 页面制作中一些技术、技巧和工具的 (1249 Leser)
- 叼哥叼人 (605 Leser)
- Aptana使用入门一(中文) (1979 Leser)
- 一个垂直水平居中效果 (684 Leser)
- 图片放大镜效果【jQZoom-JQuery插件】【9 (2354 Leser)
- jQuery thickbox插件在IE6下滚动条消失的bu (1245 Leser)
- IE8绿色版的取代工具 (2841 Leser)
- 【杭州】招聘视觉设计师,前端开发 (1753 Leser)





8 条评论
那么那个才是好啊!
引用(link)方式好!
但我见同时用 link 或者 @import的效果是一样的?应该如何选择?
你可以看看这个
强烈建议我们不要使用@imports:
http://www.stevesouders.com/blog/
当然如果站点的流量没达到一定的流量(比如说10万ip或者更大),我觉得用link 或者 @import或者都是无所谓的,只要你维护方便
@法克一条龍
后者会裸奔一刹那.*_^
写在一个css里 会不会强烈改善性能
@可以匿名吧
这个是肯定的,但是个人认为这个要看你网站的流量,如果你的网站流量大,那么可以合并多个css,减少http请求,如果流量还不是很大,那么为了维护方便还是不要合并的好
2 个引用通告
[...] 该书的作者最近又专门发布了一篇文章don’t use @import(中文翻译),详细分析了@import的使用弊端。 [...]
[...] 原文:http://www.css88.com/archives/1079 [...]