CSS文件加载:@import和link的区别

css文件加载:@import和link的区别

本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别。

使用CSS的三种方式

页面中使用CSS的方式主要有3种:

  • 行内添加定义style属性值,
  • 页面头部内嵌,
  • 调用和外面链接调用,其中外面引用有两种:
    • link@import

@impot使用方法

1
2
3
4
5
6
<style type="text/css">
<!--
@import url("css/main.css");
@import url("css/base.css");
-->
</style>

link的使用方法

1
<link href="css/main.css" rel="stylesheet" type="text/css"/>

区别

功能上的区别

  • linkXHTML标签,除了加载CSS外,还可以定义RSS等其他事务;
  • @import属于CSS范畴,只能加载CSS

加载顺序上的区别

  • 当一个页面被加载的时候(就是被浏览者浏览的时候),**link引用的CSS会同时被加载**,
  • 而**@import引用的CSS会等到页面全部被下载完再被加载**。
  • 所以有时候浏览@import加载CSS的页面时开始会没有样式,后面样式加载出来后网页会闪烁。

兼容性上的区别

  • linkXHTML标签,无兼容问题
  • 由于**@importCSS2.1提出的所以老的浏览器不支持**,

dom支持上的区别

  • link支持使用Javascript控制DOM去改变样式
  • @import不支持。

嵌套支持上的区别

  • @import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,这样更利于修改和扩展。如下所示:

main.css

1
2
@import “sub1.css”;
@import “sub2.css”;

sub1.css

1
p {color:red;}

sub2.css

1
.myclass {color:blue}

总结

从上面的分析来看,还是使用link标签比较好。标准网页制作加载CSS文件时,还应该选定要加载的媒体(media),比如screenprint,或者全部all等。

提示:这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。有兴趣的可以观察一下像新浪等网站的首页或栏目首页代码,他们总会cssjs直接写在html里,而不用外部文件

参考资料

https://www.cnblogs.com/pp-cat/p/4001628.html
https://blog.csdn.net/sinat_36414515/article/details/80392321