先回答区别,再扩展一下。
link和@import有什么区别
区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。所以会出现一开始没有css样式,闪烁一下出现样式后的页面(网速慢的情况下)
区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。在html设计制作中,css有四种引入方式。
方式一: 内联样式
内联样式,也叫行内样式,指的是直接在 HTML
标签中的 style
属性中添加 CSS
。
示例:
<div style="display: none;background:red"></div>
这通常是个很糟糕的书写方式,它只能改变当前标签的样式,如果想要多个 <div>
拥有相同的样式,你不得不重复地为每个 <div>
添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,内联方式引入 CSS
代码会导致 HTML
代码变得冗长,且使得网页难以维护。
方式二: 嵌入样式
嵌入方式指的是在 HTML 头部中的 <style>
标签下书写 CSS
代码。
示例:
<head>
<style>
.content {
background: red;
}
</style>
</head>
嵌入方式的 CSS
只对当前的网页有效。因为 CSS
代码是在 HTML
文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML
结构和 CSS
样式。因为嵌入的 CSS
只对当前页面有效,所以当多个页面需要引入相同的 CSS
代码时,这样写会导致代码冗余,也不利于维护。
方式三:链接样式
链接方式指的是使用 HTML
头部的 标签引入外部的 CSS
文件。
示例:
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
这是最常见的也是最推荐的引入 CSS
的方式。使用这种方式,所有的 CSS
代码只存在于单独的 CSS
文件中,所以具有良好的可维护性。并且所有的 CSS
代码只存在于 CSS
文件中,CSS
文件会在第一次加载时引入,以后切换页面时只需加载 HTML
文件即可。
方式四:导入样式
导入方式指的是使用 CSS
规则引入外部 CSS
文件。
示例:
<style>
@import url(style.css);
</style>
或者写在css样式中
@charset "utf-8";
@import url(style.css);
*{ margin:0; padding:0;}
.notice-link a{ color:#999;}
比较链接方式和导入方式
链接方式(下面用 link
代替)和导入方式(下面用 @import
代替)都是引入外部的 CSS
文件的方式,下面我们来比较这两种方式,并且说明为什么不推荐使用 @import
。
1、link
属于 HTML
,通过 <link>
标签中的 href
属性来引入外部文件,而 @import
属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;
2、@import
是 CSS2.1
才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件;
3、当 HTML 文件被加载时,link
引用的文件会同时被加载,而 @import
引用的文件则会等页面全部下载完毕再被加载;
小结:我们应尽量使用 <link>
标签导入外部 CSS
文件,避免或者少用使用其他三种方式。
原文链接:https://segmentfault.com/a/1190000003866058