CSS的link和import方式的区别

html-css09

CSS的link和import方式的区别,第1张

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

一、老祖宗的差别。

link属于XHTML标签,而@import完全是CSS提供的一种方式。

link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。

二、加载顺序的差别。

当一个页面被加载的时候,link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式,网速慢的时候还挺明显。

简而言之就是,link引用CSS时,在页面载入时同时加载;@import需要等页面完全载入后才加载。

三、兼容性的差别。

由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。

四、使用dom控制样式时的差别。

当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。

五、链入方式上有区别。

link导入方式:

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

@import导入的方式:

<style type="text/css"> 

@import url('index.css') 

</style> 

如图所示,并且@import可以在CSS文件中再次引入其他样式表。

学习CSS肯定绕不开的就是如何将css引入到HTML文件中,引入方式主要有三种:

内联样式、内部样式、外部样式

1、内联样式

内联样式又称行内样式,使用该样式需要直接在标签内添加“ style=" " ”,再将需要的样式写在双引号内,如

<div style="background: red">hello world!</div>1

行内样式比较适合初学者学习的时候使用,在网站开发时尽量不要去用,因为使用这种样式会把结构和CSS全部融合在一个页面里面,造成代码冗余,后期调整样式的时候非常不方便。

2、内部样式

内部样式是一种适合案例或者比较小的页面的引入方式,它的语法是在在head标签里添加style标签,再在style标签的内容区添加需要的样式,如:

<head>

<style type="text/css">

div{background: red}</style>

</head>12345

内部样式比较适合案例或者比较小的页面中,因为它也会增加HTML文件的代码量。

3、外部样式

外部样式是使用最广的引入方式,适合比较大的页面或者整站开发。引入方法是将样式写css文件中,再将css文件链接到HTML文件里。

而外部样式有两种链接方法引入HTML文件中:link和import

1)用link链接需要在html文件内添加link标签,在该标签内属性“ href=" " ”的双引号里写上css文件的路径即可。

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

2)用import链接需要用内部样式的方法添加“ @import url("")”属性,在url("")中写上css文件的路径。

<style>   @import url("demo.css")</style>123

同为外部样式的链接方式,link和import之间的不同不仅是载入链接的语法不同:

本质上link是HTML标签,是HTML的写法,但是import是CSS的提供的一种链接方式。所以link能够引入除css以外的其它文件,而import只能引入css文件。

link是没有兼容问题的,但是import在IE5以下不支持。

加载顺序上也不一样,link是HTML结构和CSS样式同时加载,而import是先加载HTML后加载CSS。有时候网速比较慢,你就会看到只有文字和边框的难看页面,然后才看到比较好看的页面,就是因为这个网页使用import链接的样式。

在用js控制dom修改样式的时候,link可以被修改,但是import不可以。

网页中引用外部CSS文件有两种方式:link和@import,两者引用的方式在页面上的展现效果是一样的。

link引用方式如下:

<link href="styles.css" type="text/css" />@import引用方式如下:

<style type="text/css">@import url("styles.css")</style>

差别1 :适用范围不同

@import可以在网页页面中使用,也可以在css文件中使用,用来将多个css文件引入到一个css文件中;而link只能将css文件引入到网页页面中。

差别2: 功能范围不同

link属于XHTML标签,而@import是CSS提供的一种方式,link标签除了可以加载CSS外,还可以定义RSS,定义rel连接属性等,@import就只能加载CSS。

差别3: 加载顺序不同

当一个页面被加载的时候,link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显。

差别4: 兼容性

由于@import是css2.1提出的,所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。

差别5: 控制样式时的差别

使用link方式可以让用户切换CSS样式.现代浏览器如Firefox,Opera,Safari都支持rel=”alternate stylesheet”属性(即可在浏览器上选择不同的风格),当然你还可以使用Javascript使得IE也支持用户更换样式。