您现在的位置:首页 > 前端教程 > CSS教程

@import与link调用CSS

时间:2009-02-06  来源:beautycss.org  作者:hsiang chieh  点击数:277

css在页面里面一般有三种引入方式rSwBeautyCss.org - 前端教程网
1.在页面里面直接写rSwBeautyCss.org - 前端教程网

<style type=”text/css”>rSwBeautyCss.org - 前端教程网
body{rSwBeautyCss.org - 前端教程网
margin: 0;rSwBeautyCss.org - 前端教程网
padding: 0;rSwBeautyCss.org - 前端教程网
}rSwBeautyCss.org - 前端教程网
</style>rSwBeautyCss.org - 前端教程网
2.用link进行引用rSwBeautyCss.org - 前端教程网

<link rel=”stylesheet” type=”text/css” href=”my.css”>rSwBeautyCss.org - 前端教程网

3.用import进行引用rSwBeautyCss.org - 前端教程网

<style type=”text/css”>rSwBeautyCss.org - 前端教程网
@import url(my.css);rSwBeautyCss.org - 前端教程网
</style>rSwBeautyCss.org - 前端教程网

第一种是直接在html页面上进行css书写,而第二种和第三种是采用外部引用样式单独提取文件。rSwBeautyCss.org - 前端教程网

问题1.到底link和@import有什么区别?rSwBeautyCss.org - 前端教程网
我们先来看看他们的定义rSwBeautyCss.org - 前端教程网

link元素rSwBeautyCss.org - 前端教程网
HTML和XHTML都有一个结构,它使网页作者可以增加于HTML文档相关的额外信息。这些额外资源可以是样式化信息(CSS)、导航助手、属于另 外形式的信息(RSS)、联系信息等等。rSwBeautyCss.org - 前端教程网

@importrSwBeautyCss.org - 前端教程网
指定导入的外部样式表及目标设备类型。rSwBeautyCss.org - 前端教程网

其实link和@import的最根本区别就是,link是一个html的一个标签,而@import是css的一个标签,rSwBeautyCss.org - 前端教程网
link除了调用css外还可以有其他作用譬如声明页面链接属性,声明目录,rss等等,而@import就只能rSwBeautyCss.org - 前端教程网
调用css。如果单独从外部引用css来说,他们的作用是基本一样,只不过上面的老大不一样而已。rSwBeautyCss.org - 前端教程网

问题2.link合import到底那个更好?rSwBeautyCss.org - 前端教程网
上面说了因为上面的老大不一样,所以在使用上就会有一些细节的区别,不能说总体谁好谁坏,rSwBeautyCss.org - 前端教程网
只能说具体情况具体分析。rSwBeautyCss.org - 前端教程网
1)我要用javascript进行样式选择;rSwBeautyCss.org - 前端教程网
这个时候就要用link,因为link是html元素,可用javascript去控制dom元素最后达到改变样式的效果。rSwBeautyCss.org - 前端教程网
看下列代码rSwBeautyCss.org - 前端教程网

<link rel=”stylesheet” href=”/css/styles.css” type=”text/css” media=”screen” />rSwBeautyCss.org - 前端教程网
<link rel=”stylesheet” href=”/css/orange.css” type=”text/css” media=”screen” title=”orange” />rSwBeautyCss.org - 前端教程网
<link rel=”alt&#101;rnate stylesheet” href=”/css/blue.css” type=”text/css” media=”screen” title=”blue” />rSwBeautyCss.org - 前端教程网
<link rel=”alt&#101;rnate stylesheet” href=”/css/pink.css” type=”text/css” media=”screen” title=”pink” />rSwBeautyCss.org - 前端教程网
<link rel=”alt&#101;rnate stylesheet” href=”/css/slate.css” type=”text/css” media=”screen” title=”slate” />rSwBeautyCss.org - 前端教程网

这是一段很经典的改变页面风格的代码,因为我们今天主要讲的是link和import,所以我这里只列出了引用css部分。rSwBeautyCss.org - 前端教程网
我们先来看看link里面个个属性都是表达了什么意思:rSwBeautyCss.org - 前端教程网
[1]rel:用来声明链接对象的作用或者类型。rSwBeautyCss.org - 前端教程网
譬如上面的的代码:”stylesheet”表示链接一个默认的css,而”alt&#101;rnate stylesheet”折表示备选的cssrSwBeautyCss.org - 前端教程网
[2]href:这个就不用我说了吧,引用css的文件路径。rSwBeautyCss.org - 前端教程网
[3]tyle:文件类型rSwBeautyCss.org - 前端教程网
[4]media:应用的设备,”screen”是说明应用在屏幕上。rSwBeautyCss.org - 前端教程网
[5]title:是css的名称。rSwBeautyCss.org - 前端教程网
这段代码中一共有5个css,第一个是基本样式,而其他四个是风格样式,利用javascript去控制默认显示的样式title就ok了。rSwBeautyCss.org - 前端教程网

2)我要在应用打印样式;rSwBeautyCss.org - 前端教程网
打印样式顾名思义就是打印页面时候的样式。rSwBeautyCss.org - 前端教程网
这个样式在普通浏览下是没有效果的,只有在打印的时候生效。rSwBeautyCss.org - 前端教程网
如果要为页面单独引用打印样式的话,link和@import都可以的。rSwBeautyCss.org - 前端教程网

link代码rSwBeautyCss.org - 前端教程网

<link rel=”stylesheet” href=”/css/styles.css” type=”text/css” media=”print” />rSwBeautyCss.org - 前端教程网

@import代码rSwBeautyCss.org - 前端教程网

<style type=”text/css”>rSwBeautyCss.org - 前端教程网
@import url(foo.css) print;rSwBeautyCss.org - 前端教程网
</style>rSwBeautyCss.org - 前端教程网

另外对于css来说还有一种方式@media:rSwBeautyCss.org - 前端教程网

@media print { rSwBeautyCss.org - 前端教程网
@import “print.css”rSwBeautyCss.org - 前端教程网
}rSwBeautyCss.org - 前端教程网

用@media先制定设备为 print,然后再用@impor链接rSwBeautyCss.org - 前端教程网

3)我要引用多个样式;rSwBeautyCss.org - 前端教程网
如果要在一个页面上引用多个样式组合产生效果的话,永link和@import也是都可以的。rSwBeautyCss.org - 前端教程网

link代码rSwBeautyCss.org - 前端教程网

<link rel=”stylesheet” href=”/css/orange.css” type=”text/css” media=”screen” />rSwBeautyCss.org - 前端教程网

@import代码rSwBeautyCss.org - 前端教程网

<style type=”text/css”>rSwBeautyCss.org - 前端教程网
@import url(../css/base/my.layout.css);rSwBeautyCss.org - 前端教程网
@import url(../css/base/my.typo.css);rSwBeautyCss.org - 前端教程网
</style>rSwBeautyCss.org - 前端教程网

不过个人觉得,用@import引用多文件的时候更加清晰一些rSwBeautyCss.org - 前端教程网
另外对于多样式还有一种link于@import的组合用法。rSwBeautyCss.org - 前端教程网
先用link引用一个css文件rSwBeautyCss.org - 前端教程网

<link rel=”stylesheet” href=”/css/styles.css” type=”text/css” media=”screen” />rSwBeautyCss.org - 前端教程网

然后在这个css文件里面再引用。rSwBeautyCss.org - 前端教程网

<style type=”text/css”>rSwBeautyCss.org - 前端教程网
@import url(../css/base/my.layout.css);rSwBeautyCss.org - 前端教程网
@import url(../css/base/my.typo.css);rSwBeautyCss.org - 前端教程网
</style>rSwBeautyCss.org - 前端教程网

这样做的好处是,如果你一个站点所有页面引用的样式都是一样的,rSwBeautyCss.org - 前端教程网
而有又多个css,如果你每个页面都加4,5个一样的css样式,却是浪费代码和精力,

来顶一下